语法,public class 子类名extends 父类名 {}
范例:public class zi extends fu{}
fu:被称为父类,也被称为基类和超类;
zi:称为子类,也被称为派生类
分别创建fu类和zi类
public class fu {
public void show(){
System.out.println("show方法被调用");
}
}
public class zi extends fu {
public void method(){
System.out.println("method方法被调用");
}
}
public class Demon {
public static void main(String[] args){
fu s1 = new fu();
s1.show();
zi s2 = new zi();
s2.method();
s2.show();
}
}
子类可以有父类的特点,还可以有自己特有的内容
继承的好处与弊端
好处:
提高了代码的复用性(多个类相同的成员可以放在同一个类中)
提高了代码 的维护性(如果方法代码需要修改,只需要修改一处即可)
弊端:
当父类发生变化时,子类不得不发生改变
继承中变量的访问特点
如果子类和父类中有相同的方法,则子类就用自己本身的方法
调用方法时,先看方法内部有没有,再看成员变量中有没有,最后再到父类中去看
不考虑父类的父类
super关键字
super 的用法和this 关键字的用法相似
this代表本类对象的引用
super代表父类存储空间的标识(父类对象的引用)
public class son extends father(){
int age;
public void read (int age){
System.out.println(age);//输出的是局部变量的age
System.out.println(this.age);//输出的是成员变量age
System.out.println(super.age);//输出的是父类成员变量age
}
}
继承中构造方法的访问特点
子类中所有的构造方法默认都会访问父类中的无参构造方法
原因:
因为子类会继承父类中的数据,,可能还会使用父类中的数据,所以,子类初始化前,一定要完成父类数据的初始化
每一个子类构造方法的第一条语句默认都是:super();(调用父类的无参构造方法,一般默认不写)
如果父类中的无参构造方法被注释掉,此时就必须写出父类的带参构造方法
例如:super(20);
继承中成员方法的访问特点
方法重写
子类中出现了与父类中一模一样的方法就叫做方法重写
添加注解@override可检验方法重写是否成功
方法重写的注意事项:
父类中的私有方法(private修饰的方法),子类中不可能重写
子类重写父类方法时,访问权限必须高于或者等于父类
方法如果没有public作为修饰符,则就会使用默认的修饰符,其访问权限低于public(青出于蓝而胜于蓝)
Java继承的注意事项
子类不能同时继承多个父类
Java支持多层继承
public class son extends father , mother(){}
这种写法是错误的