前几天我写了一个关于Java三大特性继承的一篇文章,今天来了解一下Java的另一个特性继承。
**
1.什么是继承
多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。
继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接 访问父类中的非私有的属性和行为。
**
**
2.继承的格式
通过关键字 extends,可以声明一个子类继承另一个父类:
class 父类{
…//只能定义相同的成员
}
class 子类 extends 父类{
…//自动拥有父类中的非私有成员,直接使用
//必须要有自己特有的成员
}
**
**
3.继承的特点–成员变量
1.成员变量不重名
如果子类父类中出现不重名的成员变量,这时的访问是没有影响的.
2.成员变量重名
如果子类父类中出现重名的成员变量,这时的访问是有影响的
子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰 父类成员变量super.父类成员变量名
例:
**
4.继承的特点–成员方法
1.成员方法不重名
如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。对象调用方法时,会先在子类中查找有没有对 应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。
2.成员方法重名–重写
方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效 果,也称为重写或者复写。声明不变,重新实现。
例:
子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从 而进行扩展增强。
注意:
1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
2. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样**
**
继承特点:
1.java只支持单继承,不支持多继承
2.2. Java支持多层继承(继承体系)。
顶层父类是Object类。所有的类默认继承Object,作为父类。 (Object类下次再写)
**