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

createh54个月前 (12-29)技术教程62

上篇文章说过this用法,需要了解的可以去看看。 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()在构造函数里必须放在第一行,且只能存在一个。

感谢求关注[送心]

相关文章

Java关键字:final,static,this,super

1. final 关键字:final 关键字,意思是最终的、不可改变的,初始化之后就不能再次修改 ,用来修饰类、方法和变量,具有以下特点:final 修饰的类不能被继承,final类中的所有成员方法都...

Java 的标识符和关键字 java 的标识符和关键字一样吗

Java 的标识符和关键字标识符的概念:标识符就是我们在编程中使用的“名字”。给类、接口、方法、变量、常量、包名起的相对唯一的名字。在编程语言中,不管是什么样的编程语言都会有标识符。并且都有差不多的规...

Java 详细剖析关键字 static,深入全面了解

1. 概述static 是一种修饰符static 是Java中表静态的关键字它可以修饰成员变量、成员方法、代码块被static修饰的成员变量或成员方法,将不再依赖于对象的创建而去使用,而是依赖类的存在...

小高分享(54)Java中的super关键字和final关键字

分享兴趣,传播快乐,增长见闻,留下美好!亲爱的您,这里是LearningYard新学苑。今天小编为你带来小高分享(54)Java中的super关键字和final关键字欢迎您的访问!Share inte...

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

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

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

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