继承
- 继承可以使子类具有父类的属性和方法,还可以在子类中重新,追加属性和方法
子类对象继承了父类对象的所有内容,但不都可见(private)
静态资源属于类,不属于被继承的范畴
- java中子类只能继承一个类,不能继承多个类
- java中类支持多层继承
继承格式:
public class 子类名 extends 父类名 {}
父类也被称为基类,超类;子类也被称为派生类
继承中变量访问的优先级:
子类局部定义的变量------->子类定义的变量------>父类定义的变量-->......
继承中成员方法访问的优先级():
子类定义的方法------>父类定义的方法-->.......
super
super的使用跟this相似
- this:代表本类对象的引用;
- super:代表父类存储空间的标识(可以理解为父类对象的引用)
复习this关键字:
this.成员变量 //访问本类的成员变量
this() //访问本类的构造方法 //注意格式,不用写类名,this就指当前类
this.成员方法() //访问本类的成员方法
继承中构造方法的访问特点
子类中所有的构造方法默认都会访问父类中无参的构造方法
- 子类继承父类的数据,可能会使用父类的数据,所以子类初始化之前,一定要先完成父类数据的初始化
- 每一个子类构造方法的第一条语句默认都是:super()
如果父类没有无参构造方法,只有带参构造方法,解决办法:
- 通过super调用父类的带参构造
- 在父类自己写个无参构造
方法重写
子类中出现和父类中一模一样的方法声明
应用:子类需要父类此方法的功能,自己又有新功能,就要重写
@Override:一个注解,用于检查重写方法的方法声明的正确性
注意事项:
- 私有方法不能被重写(父类私有成员子类不可见)
- 子类重写后的方法访问权限不能更低(public>默认>私有)
- 子类方法的返回值类型要与父类方法相同,或者是返回类型的子类
- 要是抛异常不能扩散异常(把父类方法抛出的异常增大)
- 静态方法不属于对象,因此不能被继承,想调直接用类名.方法();静态方法不能与普通方法重名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)