- 覆盖方法:子类重写父类的方法
- super关键字:1:调用超类方法 2:调用超类构造器
多态
- is-a规则的另一种表述是替换规则,它指出程序中出现超类对象的任何地方都可以使用子类对象替换(例如:可以将子类对象赋给超类变量
- Manager boss = new Manage() Employee [] staff = new Employee[3] staff[0] = boss 变量将staff[0]和boss引用同一个对象,但编译器只将staff[0]看成Employee对象 意味着可以 booss.setBonus(5000)但不能staff[0].setBouns(5000)
- 不能将超类的引用赋给子类变量
- 强制类型转换:要在暂时忽略对象的实际类型之后使用对象的全部功能
- 将一个值存入变量中,编译器将检查你是否承诺过多。如将一个子类的引用赋给一个超类变量,编译器是允许的。但将一个超类变量的引用赋给子类变量时,就承诺过多了。必须进行强制类型转换,这样才能通过运行时的检查
- 用 instanceof检查是否能够成功转换 a instanceof b a是否时b的子类或实例
- 抽象类
- 包含一个或多个抽象方法的类必须被声明为抽象的
- 除抽象方法外,抽象类还可以包含具体字段和方法
- 抽象方法充当着占位方法的角色,他们在子类中具体实现
- 抽象类不能实例化,但能创建一个具体子类的对象