初识super关键字

1.super.成员变量名---------访问超类的成员变量 

2.super.方法名()-------------调用超类的方法

3.super()-----------------------调用超类的构造方法

1.super.成员变量名

public class Person {
    int id;
    String name;
}
class Student extends Person{
   Student(){
      super.id=1;//这里写id即可
      super.name="小明";//这里写name即可
   }

}

2.super.方法名()

public class Person {
    void SingSong(){
        System.out.println("唱山歌");
    }
}

class Student extends Person {
    void SingSong(){
        super.SingSong();
        System.out.println("街舞");
    }
}

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

Student中的SingSong方法要调用父类中的方法的话,直接在方法中用super去调用即可

3.super()

如果子类中没有调用超类的的构造方法,则默认super()调用超类无参构造方法

public class Person {
    Person() {
        System.out.println("落红不是无情物");
    }
}

class Student extends Person {
    Student() {
        System.out.println("化作春泥更护花");
    }
    public static void main(String[] args) {
        Student student = new Student();//输出:落红不是无情物
                                              //化作春泥更护花
    }
}
虽然没有新建Person实例,但是在Student的构造方法中存在默认的super(),所以在新建Student的时候默认也去调用了Person的构造方法因此打印了父类的落红不是无情物

注意super()调用的话要写在第一行

如果父类只有有参构造,那么子类也必须要调用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值