super 关键字的理解

发布于 2019-11-24 14:37:37
关注者
0
被浏览
1030
1 个回答
  • 面试哥
    面试哥 2019-11-24
    为面试而生,有面试问题,就找面试哥。

    super 关键字

    super关键字用于从子类访问父类的变量和方法。 例如:

    
    public class Super {
        protected int number;
        protected showNumber() {
            System.out.println("number = " + number);
        }
    }
    public class Sub extends Super {
        void bar() {
            super.number = 10;
            super.showNumber();
        }
    }
    

    在上面的例子中,Sub 类访问父类成员变量 number 并调用其其父类 Super 的 showNumber() 方法。

    使用 this 和 super 要注意的问题:

    • 在构造器中使用 super() 调用父类中的其他构造方法时,该语句必须处于构造器的首行,否则编译器会报错。另外,this 调用本类中的其他构造方法时,也要放在首行。
    • this、super不能用在static方法中。

    简单解释一下:

    被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享。而 this 代表对本类对象的引用,指向本类对象;而 super 代表对父类对象的引用,指向父类对象;所以, this和super是属于对象范畴的东西,而静态方法是属于类范畴的东西

面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看