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

createh53个月前 (12-29)技术教程38

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

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

super

指代父类的对象。

  • 引用父类的成员属性或者方法。(非private修饰的)。
Bash
/**
 * 动物类
 */
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区分是父类的。
Bash
/**
 * 动物类
 */
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()在构造函数里必须放在第一行,且只能存在一个。

感谢求关注[送心]

相关文章

Java 中你绝对没用过的一个关键字?

这节课给大家介绍一个 Java 中的一个关键字 Record,那 Record 关键字跟不可变类有什么关系呢?看完今天的文章你就知道了。友情提示 Record 关键字在 Java14 过后才支持的,所...

关于 Java 关键字 volatile 的总结

1 什么是 volatilevolatile 是 Java 的一个关键字,它提供了一种轻量级的同步机制。相比于重量级锁 synchronized,volatile 更为轻量级,因为它不会引起线程上下文...

详解Java关键字之——volatile java volitile关键字

一、什么是Volatilevolatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(syn...

关键字static详解 关键字static的用法

关于static关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。定义当static修饰成员变量时...

java基础之volatile关键字 volatile关键字主要解决什么问题

转眼又到圣诞节加班完成去逛街问问老婆开心不没备礼物被打瘸-----------------------------------打油诗专用分割线-----------------------------...

Java的native关键字,你可能需要了解一下

Java 中的 native 关键字是用来声明一个方法是由本地代码(Native Code)实现的。也就是说,这个方法的实现并不是通过 Java 语言来实现的,而是通过其他语言(如 C/C++)实现的...