继承
一、类、超类和子类
1、定义子类
关键字extends表示
已存在的类称为超类 ( superclass)、 基类(base class) 或父类(parent class); 新类称为子类(subclass)、 派生类 (derivedclass) 或孩子类(child class)。
2、覆盖方法
超类中的有些方法对子类 并不一定适用。需要提供一个新的方法来覆盖超类中的这个方法。
要返回 salary 和 bonus 域的总和,这个方法并不能运行。
在子类中可以增加域、 增加方法或覆盖超类的方法,然而绝对 不能删除继承的任何域和方法。
3、子类构造器
使用 super 调用构造器的语句必须是子类构造器的第一条语句。
如果子类的构造器没有显式地调用超类的构造器, 则将自动地调用超类默认(没有参数) 的构造器。 如果超类没有不带参数的构造器, 并且在子类的构造器中又没有显式地调用超类 的其他构造器器,则 Java 编译器将报告错误。
super 关键字也有两个用途:一是调用超类的方法,二是调用超类的构造器。
4、继承层次
由一个公共超类派生出来的所有类的集合被称为继承层次(inheritance hierarchy), 如图 5-1 所示。在继承 层次中, 从某个特定的类到其祖先的路径被称为该类的继承链 (inheritance chain),同时一个父类可以存在多个子类
5、多态、
多态事同一个行为具有多个不同表现形式或形态的能力
多态的优点
1.消除类型之间的耦合关系
2.可替换性
3.可扩充性
4.接口性
5.灵活性
6.简化性
6、强制类型转换
只能在继承层次内进行类型转换
在将超类转换成子类之前,应该使用instanceof进行检查