java之继承

Posted 橘子酱ing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
    }
}

 

以上是关于java之继承的主要内容,如果未能解决你的问题,请参考以下文章

Flask之模板之宏继承包含

操作 Java 泛型:泛型在继承方面体现与通配符使用

Java面向对象编程之继承

java之继承

java随笔:三大特性之继承

11. Java基础之继承