您的位置 首页 java

程序员必会之java关键字中super、super()用法

上篇文章说过this用法,需要了解的可以去看看。

super只能在类中的非静态中使用,即有 static 出现的地方都不能出现。

super

指代父类的对象。

  • 引用父类的成员属性或者方法。( private 修饰的 )。
 /**
 * 动物类
 */public class Animal {
    private String action;
    String name;
    protected int age;
    public String adress;
    private  void  test1() {}
    void test2() {}
    protected void test3() {}
    public void test4() {}
}

/**
 * 猫类
 */public class Cat extends Animal {
    public void test () {
        System.out.println(super.name);
        super.test2();
    }
}  

引用父类的非私有的属性和方法

  • 当子类的成员变量或者方法与父类名称相同时,用super区分是父类的。
 /**
 * 动物类
 */public class Animal {
    public String name = "动物类";
    public void test() {
        System.out.println("父类方法test()");
    }
}

/**
 * 猫类
 */public class Cat extends Animal {
    private String name = "猫类";
    @Override
    public void test() {
        System.out.println(this.name);
        System.out.println(super.name);
        super.test();
        System.out.println("子类方法test()");
    }
    public static void main(String[] args) {
        new Cat().test();
        // 猫类
        // 动物类
        // 父类方法test()
        // 子类方法test()
    }
}  

super()

指代父类的构造函数。

  • super()必须放在构造函数里, 且与this()不能同时存在

  • super()在构造函数里必须 放在第一行 ,且只能存在一个。

super()放第一行且只能存在一个

感谢求关注[送心]

文章来源:智云一二三科技

文章标题:程序员必会之java关键字中super、super()用法

文章地址:https://www.zhihuclub.com/198266.shtml

关于作者: 智云科技

热门文章

网站地图