-
继承(inheritance):Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类【或者基类,base class】,继承的类叫做子类),Java中的继承使用extends关键字。
-
当生成子类对象时,Java默认首先调用父类不带参数的构造方法,然后执行该父类构造方法,生成父类对象。接下来,再去调用子类构造方法,生成子类对象【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。比如说:没有父亲就没有儿子】。
-
super关键字:super表示对父类对象的引用。
-
如果子类使用super()显示的调用父类的某个构造方法,那么在执行的时候就会寻找与super()对应的构造方法而不会再去寻找父类不带参数的构造方法。与this()一样super()也必须作为构造方法的第一条语句。
关于继承的3点:
1)父类有的,子类也有;
2)父类没有的,子类可以增加;
3)父类有的,子类可以改变。
关于继承的注意事项:
a)构造方法不能被继承
b)方法和属性可以被继承;
c)子类的构造方法隐式地调用父类不带参数的构造方法
d)当父类没有不带参数的构造方法时,子类需要使用super()显式地调用父类的构造方法,super指的是父类的引用
e) super必须是构造方法的第一行语句
方法重写(Override):又叫覆写,子类与父类的方法返回类型一样,方法名称一样,参数一样,这样我们就说子类与父类的方法构成了重写关系。
-
方法重写与方法重载之间的关系:方法重载发生在同一个类内部的两个或多个方法。重写发生在子类和父类之间,构成重写时必须先有继承关系。
-
当两个方法形成重写关系时,可以在子类方法中通过super.run()形式调用父类的
run()方法,其中super.run()不必放在第一行语句。因为此时父类对象已经构造完毕,先调用父类的run()方法还是先调用子类的run()方法是根据逻辑来决定的。 -
在定义一个类的时候,如果没有显式的指定该类的父类,那么该类就会继承于
java.lang.Object类(JDK提供的一个类,Object类是Java中所有类的直接或间接的父类)