一、概念
继承是面向对象最显著的一个特性。
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。Java继承是使用已存在的类的定义作为基类/父类/超类,新类的定义可以增加新的数据或新的功能,也可以用父类的功能。但不能选择性地继承父类(超类,基类)。
这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
二、特点
1、 使用extends关键字
2、 相当于子类把父类的功能复制了一份
3、 java只支持单继承
4、 继承可以传递(爷爷,儿子,孙子的关系)
5、 不能继承父类的私有成员
6、 继承多用于功能的修改,子类可以拥有父类的功能的同时,进行功能拓展
7、 像是is a 的关系
三、案例
//测试继承
public class Test_Extends {
public static void main(String[] args) {
//TODO创建子类对象测试父类提供的功能
Son s = new Son();
s.eat(); //调用父类功能
System.out.println(s.name); //调用父类功能
s.sleep();//调用爷爷的功能,继承的传递性
}
}
//创建爷爷类
class Yeye{
public void sleep() {
System.out.println("爷爷在睡觉");
}
}
//创建父类
class Baba extends Yeye{
// private String name;//私有化的成员,子类无法继承
String name;
public void eat() {
System.out.println("爸爸在吃饭");
}
}
//创建子类
//通过extends关键字发生继承关系
class Son extends Baba{
}
四、super关键字
1、 通过super关键字可以使用父类的内容。
2、 super代表父类的一个引用对象。
3、 如果在构造方法中使用,必须是第一条语句。
五、方法重写Override
1、 继承后,子类就拥有了父类的功能。
2、 在子类中,可以添加子类特有的功能也可以修改父类的原有功能。
3、 子类中方法的声明与父类完全一样时,会发生覆盖/复写/重写操作。
4、 方法的声明:包括方法的返回值,方法名和参数列表,完全一致。
注意:
1、父类中的私有方法不能被重写。
2、子类重写父类方法时,修饰符要大于等于父类修饰符的权限。
3、父类中的构造方法不能被子类继承。