class Parent {//父类
Parent(){
System.out.println("调用父类的Parent()构造方法");
}
}
class SubParent extends Parent{
SubParent(){
System.out.println("调用子类的SubParent()方法");
}
}
public class Subroutine extends SubParent{
Subroutine(){
System.out.println("调用子类的Subroutine()构造方法");
}
public static void main(String args[]){
Subroutine s=new Subroutine();
}
}
//JAVA中不允许多重继承,但允许多层继承
//子类可以继承父类原有的属性和方法,也可以增加原来父类中所不具备的属性和方法,或者直接重写父类中的某些方法
//子类可以直接将父类的操作继续使用,属于代码重用
//子类可以继续扩充属于自己的标准
//私有操作被隐式继承,不能直接被访问
//在子类对象构造前一定会默认调用父类构造(默认为无参构造 ),以保证父类的对象先实例化,而后再实例化子类的对象
//覆写:子类定义的属性和方法与父类的同名
//方法覆写:子类定义的方法名称与父类的相同、参数的类型及个数相同、方法的返回值相同
//覆写发生后,调用的是实例化的子类中已经被覆写的方法
//覆写分析:a.观察实例化的是哪个类 b.该类中调用的方法是否是已经覆写过,如果没有,则调用父类的方法
//注:被子类所覆写的方法不能调用拥有比父类更加严格的访问控制权限
//this()方法:先查找在本类中是否存在要调用的方法,有就调用,没有就去父类中查找,若父类中没有,就报错
//super方法:直接在父类中调用响应的方法
//特殊的重写(重构):子类与父类的成员方法返回值、方法名称、参数类型即个数完全相同,唯一不同的是实现的内容
//注:重写父类的方法的时候,修改的权限是能是从小范围到大范围,如:父类的方法权限为protected,则子类只能改写为public,不能改写为private
运行结果