继承的概述
继承就是子类继承父类的属性和方法,还可以在子类中重新定义、追加方法和属性,子类可以直接访问父类中的非私有的属性和方法,继承是在原有类的基础上,进行功能拓展,创建新的类型
继承关系的两个类,一个为子类(派生类),一个为父类(基类),子类继承父类,使用关键字extends 来表示(extends 的意思是"扩展",子类是父类的拓展)
继承的格式
public class 子类名 extends 父类名 {}
eg :public class zi extends fu {}
//其中zi 是子类名,fu是父类名
关于重写
(1)该机制在继承中存在
(2)是子类重写父类的方法(private方法不能被重写)
(3)方法头不能变,只能重写方法体的内容(逻辑)
(4)方法头不能改变是指修饰符、返回值类型、方法名、参数列表均不能改变
(5)重写常用@override注解
方法重写的应用:当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容
super关键字
super ()帮助子类构造父类特征
在创建子类对象时,首先构造的是父类的特征(super ()只能出行在第一句)
父类的引用指向子类的对象
例如:定义一个父类
class fu{
private int x;
public fu () {}
}
定义一个子类
class zi extends fu {
private double y;
public zi () {}
public zi (int x,double y) {
super (x);//调用父类构造方法,必须是子类构造方法的第一条有效语句
this.y = y;
}
}
子类是父类的特殊类,父类是子类的一般类,先有父类才有子类。先有父类对象,才能构造子类对象,子类所有构造方法都先调用父类构造方法构造父类对象。如果子类构造方法没有调用父类构造方法,JVM将默认执行“super();”调用父类空构造方法。如果父类没有定义空构造方法,将出现编译错误