第十七讲
A)构造方法的重载:只需看参数即可。如果想在一个构造方法中调用另外一个构造方法,那么可以用this()的方式调用,this()括号中的参数表示目标构造方法的参数。this()必须要作为构造方法的第一条语句。
B)继承:Java是单继承的,意味着一个类只能继承另一个类,继承使用extends关键字。
C)当生成子类对象时,会默认先调用父类的不带参数的构造方法,生成父类对象,再执行该子类的构造方法,生成子类对象。
D)如果子类的构造方法想调用调用父类的构造方法,可以用super()来显式调用,这样就不会寻找父类不带参数的构造方法。与this()一样,super()必须为构造方法中的第一条语句。
E)关于继承的3点
1)父类有的,子类也有
2)父类没有的,子类可以增加
3)父类有得,子类可以改变
F)关于继承的注意事项
1)构造方法不能被继承
2)方法和属性可以被继承
3)子类的构造方法隐式调用父类不带参数的构造方法
4)当父类没有不带参数的构造方法,子类要用super()来调用父类的构造方法
G) 方法重写:子类与父类的方法返回类型一样,名称一样,参数一样,这样子类与父类方法构成了重写关系。
H)方法重写 与 方法重载 的关系:重载发生在同一个类内部,重写发生在父类与子类之间。
I)子类的方法内可以用 super().方法 形式来调用父类的方法,且不必摆在方法的第一行。
J)在定义一个类时,如果没有显示指定该类的父类,那么该类就会继承于java.lang.Object类。
K)多态:子类就是父类,男人是人,玫瑰是花,多态是指:父类型的引用可以指向子类型的对象。
L)Parent p = new Child();当使用多态方式调用方法时,首先检查父类中是否有那个方法,如果没有则编译错误。因为p是父类型,父类型不一定有子类型的方法。
a)向上类型转换(upcast):比如说Cat类型转换为Animal类型,即子类转换为父类型,不需要显示指定。
b)向下类型转换(downcast):比如Animal类型转换为Cat类型,即父类型转换为子类型,需要使用强制类型转换,同时这个父类的引用需要指向该子类的对象。