1

这是隐藏的方法:

class SuperClass : GLib.Object {
    public void method1() {
        stdout.printf("SuperClass.method1()\n");
    }
}

class SubClass : SuperClass {
    public new void method1() {
        base.method1();
        stdout.printf("SubClass.method1()\n");
    }
}

没有“new”关键字的相同代码:

class SuperClass : GLib.Object {
    public void method1() {
        stdout.printf("SuperClass.method1()\n");
    }
}

class SubClass : SuperClass {
    public void method1() {
        base.method1();
        stdout.printf("SubClass.method1()\n");
    }
}

这些有什么区别?

编辑:在生成的 C 代码中绝对没有区别,所以我认为编译的二进制文件是相同的。

4

1 回答 1

0

没有任何功能差异,但是明确使用new关键字是理想的并且可以避免编译器警告。

于 2021-12-18T17:53:12.613 回答