Java-关键字super

    科技2022-08-17  98

    super关键字 在Java中使用super关键字来引用基类成分

    直接开始程序分析:

    class FatherClass{ public int value; public void f() { value = 100; System.out.println("FatherClass.value = "+value); } } class ChildClass extends FatherClass{ public int value; public void f() { //利用到了重写 super.f();//3 value = 200; System.out.println("ChildClass.value = "+value); System.out.println(value); System.out.println(super.value); } } public class TestInherit { public static void main(String[] args) { ChildClass cc = new ChildClass();//1 cc.f();//2 } }

    这部分程序很简单刚开始有一个FatherClass的父类,其中有一个方法f,在这个方法中对value赋值并且输出value的值。 之后通过子类ChildClass对父类的继承,并且还对继承的f方法进行了重写,改变了value的值再进行输出,最后的输出结果为 再对程序进行内存分析: 这里表示的是对程序的1 句(程序的注释中标记了)执行之后的内存变化,再new一个cc之后会在栈内存中出现一块地区存放cc的值这时会出现两个value,其中一个为父类的value还有一个为子类的value,在没进行2 句之前(也就是还没调用f方法),这时的value值都为0.当new之后会有一个this指向对象本身,还有一个super来指向当前对象里的父类对象 进行了2 句之后开始调用f方法,这时就开始执行语句3 于是父类FatherClass中的value=100并且还打印出了相关语句。

    再执行完全部的程序之后,内存分析如下

    System.out.println(super.value);

    注意的是,这条程序输出的就是父类的value

    Processed: 0.015, SQL: 9