1 什么叫继承
OOP的又一个特性。
在已有类的基础上来创建新类,新类具有已有类的所有特性(属性和方法,没有构造器)。
新类的对象具有已有类对象的所有功能,或者称之为具有已有类的接口(就是这个对象可以调用的所有方法)。
创建一个类的目的是:为了创建这个类的对象。
创建这个类的对象的目的是:是为使用这个对象的方法。
一个对象可以调用的方法是:这个对象的接口。
2 什么叫父类(基类、超类)
已有类:父类,或者是基类(不是鸡肋),超类 被继承特性的类
3 什么叫子类(派生类、导出类)
新类:子类,或者叫派生类、也叫导出类。
在已有类的基础上创建的新类
4 继承的语法
class 新类 extends 已有类 {
}
5 继承是可以多层次的
也就是说,A类有个子类是B类, B类有个子类是C类。这是可以的!
7 单继承
Java中只有单继承,而没有多继承。
单继承有好处,但也有坏处
好处:没有了多继承引发的二意性。
坏外:不能同时具有多个类的特性了。
Java中自己独有的(C++没有的):接口再加上其他的东西就可以超过了多继承的好处。
8 可以象使用父类对象一样使用子类对象
可以象使用父类那么来使用一个子类,也就是说,我们可以把在使用父类的任何地方使用子类对象来替换。
9 里氏代换原则(LSP)(了解)
如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。
Java API中,有很多继承关系都没有遵守里氏代换原则!这些东西通常都是在jdk1.0中出现的类。但后期就基本没有出现了。
就算是大师们,也有错误的时候。因为早期有很多人对继承使用很不正确!
小结
子类对象可以用来当做父类对象来使用,反之不可。
子类对象具有父类的所有功能。
子类可以添加新的功能和特性
继承的语法
Java中允许继承的多层次化,即子类也可以有子类 |