- 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类
继承就是子类继承父类的特征行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同行为
也可以说继承是面向对象最显著的一个特性,继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力
1.1子类可以继承父类的行为特征,如一个父类的财产可以被子类继承,但是父类的私有的东西是不能被子类继承的
- 最简单最基础单继承格式
extends 继承关键字
Class 被继承的类(爸爸){
}
Class 去继承的类(儿子){
}
Class 去继承的类 extends被继承的类{
}
继承:爸爸有很财富,房,车等等,儿子继承爸爸的特征和行为,儿子可以拥有爸爸的财富,爸爸的房,爸爸的车,继承了,儿子可以同时拥有爸爸拥有的财富
- 继承类型
继承分3种继承
3.1单继承,上面
2.就是单继承
3.2多重继承
多重继承,就像一家人,爷爷,爸爸,儿子,爷爷有一辆宝马,爸爸继承了爷爷的宝马,爸爸就拥有了爷爷的宝马,然后儿子又继承了爸爸的宝马,儿子就拥有了爸爸的宝马,从爷爷那里传到爸爸那再传到儿子那,为多重继承
Class爷爷{
}
Class爸爸 extends爷爷{
}
Class 儿子 extends爸爸{
}
3.3不同类继承同一个类
Class 爸爸{}
Class 大儿子 extends 爸爸{}
Class 小儿子 extends 爸爸{}
如:一个父类有两个子类,父类可以被两个子类同时继承,同时拥有父类的特征以及行为,就像父类留下了一套房子,大儿子和小儿子一起继承了这套房子,他们一起住在这套房子里面,共同拥有父类的房子
3.4错误的继承
1.虽然继承可以进行类功能的扩充 ,但是他在定义的时候也是会存在某些限制的
如:一个子类只能够继承一个父类,存在单继承局限
Class 爷爷{}
Class 爸爸{}
Class 儿子 extends爷爷,爸爸{}
子类继承了两个父类,这个写法是错误的
2.在一个子类继承的时候,实际上会继承父类之中的所有操作(属性以及方法),但是需要注意的是,对于所有非私有(no private)操作属性显示继承 (可以之间利用对象操作),而所有的私有操作作属于隐式继承(间接完成)
3.5
上图定义了两个方法,一个是Pig一个是eat
上图是Eagle类继承了Niaolei类,也就继承了Niaolei里面相应的方法pig和eat的方法
上图调用:Eagle类继承Niaolei类的方法