java之继承

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();
    }
}
原文地址:https://www.cnblogs.com/cathycheng/p/13157712.html