2020-05-20 17:05:28
1.子类和超类存在is-a关系,子类is-a超类
2.子类可以重用超类中已经编写的部分代码,并将超类中所有域都保留下来
3.子类中的方法不能够直接访问超类的私有域,尽管每个子类对象都拥有名字和超类相同的域,但是在子类的方法中并不能够直接访问超类的相关域;只有超类的相关方法可以访问它的私有部分;如果子类一定要访问超类的私有域,就必须借助公有的接口,超类中相关域的访问器就是这样一个接口
4.调用超类中与子类相同名称的方法必须加关键字super
5.super与this的概念并不相似,this是一个对象引用,super是一个调用超类方法的特殊关键字,并不是是一个对象的引用,不能将super赋值给另一个对象变量;在this和super调用其他类的构造器的时候,使用方式类似
6.子类构造器
由于子类的构造器不能够访问超类的私有域,所以必须利用超类的构造器对这部分私有域进行初始化,可以通过super实现对超类构造器的调用;如果子类的构造器没有显式的调用超类的构造器,则将自动的调用超类默认(无参)的构造器,如果超类中没有无参的构造器,并且在子类中没有显式的调用超类的其他构造器,就会报错
7.多态,一个变量可以指示多种实际类型的现象被称为多态;在运行时能够自动选择调用那个方法的现象称为动态绑定
8.由一个公共超类派生出来的所有类的集合被称为继承层次,在继承层次中,从某个特定的类到其祖先的路径被称为该类的继承链
9.is-a规则,表明子类的每个对象也是超类的对象,另一种表述是置换法则,它表明程序中出现的超类对象在任何地方都可用子类对象置换
10.在java程序设计语言中,对象变量是多态的
11.虽然超类和子类对象变量可以引用同一个对象,但是在编译器会对不同的变量对象进行区分,这意味着超类对象不能够调用子类对象的方法;不能将一个超类的引用赋给子类对象
原文:https://www.cnblogs.com/gb12138/p/12924710.html