Super的基本使用

Super的基本使用

/*
1.在Java中,所有的类,都直接或者简介继承 Object 类
2.contr + h 可以查看 继承的层次结构
3.java中只有单继承,没有多继承(子类只能有一个父类,父类可以有多个子类)
 */


//Person 父类
public class Person {
    protected String name = "Dog";
    public void print(){
        System.out.println("Person");
    }

    public Person() {
        System.out.println("父类Person被调用");
    }

    public Person(String name) {
        this.name = name;
    }
}
//子类 继承 父类 Person
//父类中 只有 public 修饰的属性才可以被直接调用
//如果使用 private 修饰的属性则必须使用 get 和 set 方法调用
//private 修饰的方法无法被继承
public class Student extends Person{
    private String name = "Cat";

    public Student() {
        //隐藏代码 调用的父类构造器的无参方法
        //调用父类构造器 super必须写在第一行
        //子类构造器调用 this也必须要写在第一行
        super();//this();
        System.out.println("子类Student被调用");
    }

    public Student(String name) {
        this.name = name;
    }

    public void print(){
        System.out.println("Student");
    }

    public void test01(){
        System.out.println(name);//Cat
        System.out.println(this.name);//Cat
        System.out.println(super.name);//Dog
    }
    public void test02(){
        print();//Student
        this.print();//Student
        super.print();//Student

    }
}
super注意点:

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

Vs this:

​ 代表的对象不同:
​ this: 本身调用者这个对象
​ super:代表父类对象的应用

前提

​ this:没有继承也可以使用
​ super:只能在继承条件才可以使用构造方法
​ this():本类的构造
​ super():父类的构造

posted @ 2025-01-25 16:47  EndeavorX  阅读(25)  评论(0)    收藏  举报