子类能继承父类中的哪些内容?
构造方法:非私有--不能 private--不能
成员变量:非私有--能 private--能(不能直接使用,通过对应的get/set方法用)
成员方法:虚方法表--能 否则--不能
1.子类不能继承父类的构造方法
父类:
package a05extendsdemo2;
public class Fu{
String name;
int age;
public Fu(){}
public Fu(String name,int age){
this.name=name;
this.age=age;
}
}
子类:
package a05extendsdemo2;
public class Zi extends Fu{
}
Test://利用空参构造创建子类对象
//如果一个类中没有构造方法,虚拟机会自动的给你添加一个默认的空参构造
Zi z1=new Zi();//所以空参构造没报错
//利用带参构造创建子类对象
Zi z2=new Zi("zhangsan",23);//报错,说明子类不能继承父类的构造方法
package a05extendsdemo2;
public class Test {
public static void main(String[] args) {
//利用空参构造创建子类对象
//如果一个类中没有构造方法,虚拟机会自动的给你添加一个默认的空参构造
Zi z1=new Zi();//所以空参构造没报错
//利用带参构造创建子类对象
Zi z2=new Zi("zhangsan",23);//报错,说明子类不能继承父类的构造方法
}
}
2.子类能否继承父类的成员方法(图片来自哔站黑马程序员)
只有父类中的虚方法才能被子类继承 (虚方法:非private,非static,非final)
Object中有5个虚方法