super关键字

21 篇文章 1 订阅

一、实义及修饰属性内容

        1、super:指的是: 父类的

        2、super可以修饰属性,可以修饰方法;

        在子类中均存在super调用父类的内容,但大部分均可省略

        3、在特殊情况下,当子类和父类的属性重名时,你要想使用父类的属性,必须加上修饰符super.,只能通过super.属性来调用

        4、在特殊情况下,当子类和父类的方法重名时,你要想使用父类的方法,必须加上修饰符super.,只能通过super.方法来调用

        6.以下代码中父类和子类中age数值不同,所以必须加super

父类:

public class Person {
    int age = 30;
    public void eat(){
        System.out.println("我可以吃饭");
    }

}

子类: 

public class Student extends Person{
    int age = 20;
    double score;
    public void  study(){
        System.out.println("我可以学习。。。");
    }
    public void eat(){
        System.out.println("我可以吃饭??????");
    }
    public void a(){
        System.out.println(this.age);//20
        System.out.println(this.age);//20
        System.out.println(super.age);//30

        this.eat();
        super.eat();
    }
}

二、修饰构造器

        1、其 实 我 们 平 时 写 的 构 造 器 的 第 一 行 都 有 : super() -->作 用:调 用 父 类 的 空 构 造 器 ,只 是 我 们 一 般 都 省 略 不 写(所 有 构 造 器 的 第 一 行 默 认 情 况 下 都 有 super()。但 是 一 旦 你 的 构 造 器 中 显 示 的 使 用 super调 用 了 父 类 构 造 器,那 么 这个 super()就不 会 给 你 默 认 分 配 了 。如 果 构 造 器 中 没 有 显 示 的 调 用 父 类 构 造 器 的 话 ,那 么 第 一 行 都 有 super(),可 以 省 略 不 写)!

        2、如 果 构 造 器 中 已 经 显 示 的 调 用 super父 类 构 造 器 ,那 么 它 的 第 一 行 就 没 有 默 认 分 配 的 super();

        3、在构造器中,super调用父类构造器和this调用子类构造器只能存在一个,两者不能共存:

因为super修饰构造器要放在第一行,this修饰构造器也要放在第一行:

解决方案为:二选一

                将this(score)改为 this.score= score;

4、以后写代码构造器的生成可以直接使用IDEA提供的快捷键:

      • 第一步 :alt+insert
      • 第二步:

      • 第三步

      • 第四步

最终生成:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在摆烂的小母

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值