1.选用条件
面向对象的基本特征之一:继承
继承:相同的属性,特征,方法,一般具有包含关系。我们可以选择用继承,接下来我们介绍一下继承的使用和注意事项。(封装,多态)
2.继承的书写
格式:public class 子类名 extends 父类名 { }
子类的特点:可以有父类的方法,也可以有自己特有的方法。
3.继承的访问特点
在子类方法中访问一个变量:子类局部, 子类成员,父类成员
super():表示父类对象的引用
this:表示引用本类对象的引用
子类中所有的构造方法默认都会访问父类中无参的构造方法(自己给出无参构造方法)
子类会继承父类,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化。每一个子类构造方法的第一条语句默认都是:super()。
在子类方法中访问一个方法:子类成员范,父类成员
4.方法重写
子类和父类有一样的方法,可以重写父类的方法,也可以定义自己特有的方法。为了防止出错,用@override注释。私有方法不能被重写。权限:public>默认>私有。
5.继承代码演示
//子类
public class Teacher {
public void show() {
System.out.println("show方法被调用");
}
}
//父类
public class Student extends Teacher {
public void method() {
System.out.println("method方法被调用");
}
}
//测试类
public class Test {
public static void main(String[] args) {
Fu f=new Fu();
f.show();
Zi z=new Zi();
z.method();
z.show();
}
}
结果:
6.重写代码演示
方法重写的方法名必须一致,然后加入新的方法。用super进行继承
//子类
public class Phone {
public void call(String name){
System.out.println("给"+name+"打电话");
}
}
//父类
public class NewPhone extends Phone{
@Override
public void call(String name){
System.out.println("开启视频功能");
//System.out.println("给"+name+"打电话");
super.call(name);//继承父类的原有的方法
}
}
//测试类
public class Test {
public static void main(String[] args) {
Phone p=new Phone();
p.call("小名");
System.out.println("============");
NewPhone np=new NewPhone();
np.call("小名");
}
}
7.多层继承
拓展Java中类只支持单继承,不支持多继承。但是可以多层继承。
例如:class extends A,B,C{} 是错误的
正确如下:
class A
class B extends A
class C extends B
这样C就可以继承A,B中的方法了