携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情
1、前言
再美好的梦想与目标,再完美的计划与方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。
8月24日,星期三,天气阴
2、正文
面向对象的三大特征之二:继承
什么是继承?
Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起父子关系。
public class Student extends People{}
Student 成为子类(派生类),People称为父类(基类或超类)。
**作用:**当子类继承父类后,就可以直接使用父类公共的属性和方法了
使用继承的好处:可以提高代码的复用性,减少代码冗余,增强类的功能扩展性。
继承设计规范:
子类们相同特征(共性属性、共性方法)方法父类中定义,子类独有的属性和行为应该定义在子类自己里面。
为什么?
如果子类的独有属性、行为定义在父类中,会导致其他子类也会得到这些属性和行为,这不符合面向对象逻辑。
继承的特点:
1.子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。
2.Java是单继承模式:一个类只能继承一个直接父类。
3.Java不支持多继承、但是支持多层继承。
4.Java中所有的类都是Object类的子类。
子类不可以继承父类的构造器,子类有自己的构造器,父类构造器用于初始化父类对象。
子类可以继承父类的私有成员,但是不能直接访问。
子类可以直接使用父类的静态成员(共享),但是不能继承父类的静态成员(共享非继承)。
在子类方法中访问成员(成员变量、成员方法)满足:就近原则
先子类局部范围找;
然后子类成员范围找;
然后父类成员范围找,如果父类范围还没有找到则报错。
如果子父类中出现了重名的成员,会优先使用子类的,此时如果一定要在子类中使用父类的怎么办?
可以通过super关键字,指定访问父类的成员。
格式:super.父类成员变量/父类成员方法
今天是我参加8月更文挑战的第26天,敬请期待下文,谢谢支持。