1、子类直接继承父类
class Person1{ private String name; private int age; public void setName(String name){ this.name = name; } public String getName(){ return this.name; } public void setAge(int age){ this.age = age; } public int getAge(){ return this.age; } } class Student extends Person1{ } public class Per_StuDemo { public static void main(String[] args) { Student stu = new Student(); stu.setName("zhangsan"); stu.setAge(16); System.out.println("name:"+stu.getName()+",age:"+stu.getAge()); } }
2、只允许多层继承,而不能多重继承
对私有操作隐式继承,对公有操作显式继承。子类可以调用父类中的非私有方法(getter、setter),但是不能直接调用父类中的私有成员(直接访问)。
在子类对象构造之前一定会默认调用父类的无参构造(默认使用无参构造)以保证先实例化父类对象,而后实例化子类对象。
class A{ public A(){ System.out.println("A"); } } class B extends A{ public B(){ System.out.println("B"); } } public class ExtendsDemo1 { public static void main(String[] args) { new B(); } }
输出结果:
A
B
3、super()和this()不能同时出现,
子类对象的构造调用之前,一定要先执行父类构造,为父类对象初始化后才轮到子类对象初始化。
super()加不加此语句效果相同,且必须加在的第一行。
class A{ public A(){ System.out.println("A"); } } class B extends A{ public B(){ super(); System.out.println("B"); } } public class ExtendsDemo1 { public static void main(String[] args) { new B(); } }