前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java基础学习-super关键字

java基础学习-super关键字

原创
作者头像
FutureTester
发布2021-12-26 21:46:31
2680
发布2021-12-26 21:46:31
举报
文章被收录于专栏:FutureTesterFutureTester

super是直接父类对象的引用

可以通过super来访问父类中被子类覆盖的方法或属性

普通方法:

  • 没有顺序限制。可以随便调用

构造函数中:

  • 任何类的构造函数中,若是构造函数的第一行代码没有显示的调用super(...);那么Java会默认都会调用super();作为父类的初始化函数。所以你这里的super();加不加都无所谓。
代码语言:javascript
复制
package extand;
//父类
public class A {
    String name;
    public void eat(){
        System.out.println("吃苹果");
    }
}
代码语言:javascript
复制
package extand;

//子类
public class B extends A{
    public void eat(){
        super.eat();
    }
}
代码语言:javascript
复制
package extand;

public class C {
    public static void main(String[] args) {
        B b = new B();
        b.eat();
    }
}

用途

  1. 可以在子类中调用父类中被子类覆盖的方法 super.父类方法名称
  2. super在普通方法中使用的话,可以任意位置偏离
  3. super在构造方法中使用的话,会调用父类的构造方法,一定要将super放在第一行
  4. 在构造方法中,super关键字和this关键字不能同时出现
  5. 父类中的私有属性和方法都不能被调用,包括构造方法
  6. 子类的构造方法中都会默认使用super关键字调用父类的无参构造方法,因此在定义类的时候,无论自己是否定义了其他构造方法,最好将无参构造方法写上
  7. 如果构造方法中显示的指定了super的构造方法,那么无参的构造方法就不会被调用

小结

  • 在创建子类对象的时候一定会优先创建父类对象
  • 所有的Java类都具备同一个祖宗类Object,是所有类的根类

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档