一、继承
定义:允许类派生子类(只可以单一继承)
当子类继承父类之后,父类中的所有公共的成员将被子类继承(拥有),子类还可以拥有自己特殊的成员。子类无法继承父类中的构造方法和private成员。
二、重写
子类中存在与父类中同原型(一模一样)的方法,子类中覆盖了父类中的方法
final在继承中的特殊用法:
final修饰父类中的方法,表示方法不能被子类覆盖。
final修饰类,表示该类不能被继承
super 关键字:
1.区别this成员和父类成员。
2.调用父类的成员。
三、继承中的构造方法
子类不能继承父类中的构造方法,子类可以调用父类中任何一个可以访问的构造方法。
1.只能在子类的构造方法中调用父类的构造方法。
2.每次只能调用一个/次父类的构造方法。
3.调用父类的构造方法,必须在子类构造方法第一行完成。
易忘点:
创建子类对象时,会先创建(new)父类对象
调用子类构造方法时,必须手动或自动调用父类的构造方法
如果父类中的构造方法带参数,子类的构造方法中必须手动调用父类的构造方法。
手动:super();
自动:只能调用父类中不带参数的构造方法
四、多态
多态:同一个方法名称,不同的表示形态
多态实现的条件:
1.必须有继承关系
2.子类对父类方法的重写
3.父类的引用指向子类的实例
A.静态多态:在编译时即明确调用的是哪个类中的方法
又叫:编译时多态 通常体在方法的重载
B.动态多态:运行时才能明确调用的是哪个类中的方法
又叫:运行时多态 通常体在方法的重写
方法的重载、重写区别:
1.重载量方法名相同,参数列表不同。(重写方法与原方法一模一样)
2.重载是编译时多态(重写是运行时多态)
3.重载是可以无限重载(重写只能一次)
4.重载继承关系不是必须的(重写是必须有继承关系)
表态块static{}加载优先于子父类的构造方法。
(转自本人其它账号)