什么是继承?
Java中提供了一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起父子关系
代码如:
public class Student extends People {}
格式为:
子类 extends 父类
Student被称为子类(派生类),People被称为父类(基类或者超类)
作用:当子类继承父类后,可以直接使用父类公众的属性和方法
好处:调高了代码的复用性,减少了代码的繁琐,增强了类的功能的扩展性
继承后子类的特点
子类可以得到父类的属性和行为,子类可以使用
继承的设计规范
子类们相同的特征(共性的属性和共性的方法)放在父类中定义,子类独有的属性和行为应该定义在子类自己里面
理解:
如果子类独有属性,行为定义在父类中,会导致其他子类也会得到这些属性和行为,这不符合面向对象逻辑
继承的特点:
1.子类可以继承父类的属性和行为,但是子类不能继承父类的构造器
2.Java是但继承模式,一个类只能继承一个直接父类
3.Java不支持多继承,但支持多层继承
4.Java中所有的类都是object类的子类
在子类方法中访问成员(成员变量,成员方法)满足:
就近原则,子类没有找子类,子类没有找父类,父类没有就会报错
如果子父类中出现了重名的成员变量,此时一定要在子类中使用父类怎么办
格式:super.父类成员变量/父类成员方法
什么是方法的重写:
在继承体系中,子类出现了和父类中一模一样的方法生命,我们就称子类这个方法是重写的方法
应用场景:
当子类需要父类的功能,但父类的该功能不完全满足自己的需求时
子类可以重写父类中的方法
@override
@override是放在重写后的方法上,作为重写是否正确的校验注解
加上注解后如果重写错误,编译阶段会出现错误提示
建议重写方法都加@override注释,代码安全
方法重写注意事项和要求
重写的名称,形参列表必须与被重写方法的名称和参数流标一致
私有方法不能被重写:
子类重写父类时,访问权限必须大于或者等于父类(了解)
子类不能重写父类的静态方法,否则报错