基本概念
从多个有相同特征和行为的类中抽取组成新类——父类,派生出的类是子类,具有父类的属性和行为,并能扩展新的能力。
父类也称超类或基类,子类也叫派生类。
修饰符 class 子类 extends 父类
{
成员变量定义;
成员方法定义;
}
构造方法在继承中的应用
子类会继承父类的成员变量和成员方法。若子类无构造方法,则会继承父类无参构造方法。对父类带参构造方法,子类可以在自己构造方法用super来调用它,且必须是类构造方法第一条可执行语句。
继承与覆盖
父类与子类同时声明一个同名变量,则父类的同名变量在子类使用时会被隐藏。
若子类重新定义从父类继承的方法,则父类的这个方法在子类中不复存在,简称方法覆盖。
注意事项
子类能继承父类所有成员变量,但不能直接访问私有成员变量。
在Java中类只支持单继承,一个类只能有一个父类
super()调用父类构造方法
子类不能继承父类构造方法,,要显式调用,必须在子类构造方法第一行使用super()方法。
子类继承父类,子类构造方法第一行会默认加上super(),在调用子类构造方法时会先调用父类无参构造方法。
子类第一行编写了this(),会占用第一行,把super()挤掉,就不会调用父类构造方法。
若父类中只有有参构造方法,则子类继承父类时会报错。可以通过在子类中调用父类有参构造方法来避免,也可以在构造方法中调用本类其他构造方法来挤掉super()调用父类中无参构造方法。
super()访问父类字段和方法
引用子类的父类:super+“.”+父类的方法或属性名称,此方法多用于子类成员名隐藏了父类同名成员情况。
super()还可以用于调用被子类隐藏的方法。