继承

继承

使用extends 关键字

语法public class Student extends Person 子类Student继承父类Person

Ctrl+H快速打开继承树

在Java中,所有的类都默认直接或间接继承Object类

super调用父类中的属性或方法

父类:

public class Person {
    //父类中的属性
    protected String name="kuangshen";
    
    //父类方法
     public void print()
    {
        System.out.println("Person");
    }
}

子类:

public class Student extends Person {
    private String name="qinjiang";
    
    public void print()
    {
        System.out.println("Student");
    }
    public void test(String name)
    {
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }

    public void test1(){
        print();
        this.print();
        super.print();
    }
}

主函数测试1:

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        student.test("kokomi");
    }
}

输出结果:

kokomi qinjiang kuangshen

//主函数测试2:

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        student.test1();
    }
}

Student Student Person

当在主函数中new 一个子类时,调用构造器的顺序是先调用父类构造器,再调用子类构造器

public class Student extends Person{
	public Student()
    {
        super();//默认调用父类构造器,可以省略不写
    }
}

子类可以继承父类中私有的方法,只是不能直接调用

super与this

使用super的注意点:

  • super调用父类构造方法,必须在构造方法的第一个
  • super必须只能出现在子类的方法或者构造方法中
  • super和this不能同时调用构造方法!

与this相比:

  • 代表的对象不同:

    • this:代表本身调用者的这个对象
    • super:代表父类对象的应用
  • 前提:

    • this:没有继承也可以使用
    • super: 只能在继承条件中使用
  • 构造方法:

    • this();本类的构造
    • super(); 父类的构造
posted @ 2023-07-01 08:58  晚枫zz  阅读(11)  评论(0)    收藏  举报