【问题标题】:What is difference between method hiding and without "new" keyword?方法隐藏和没有“新”关键字有什么区别?
【发布时间】:2022-01-20 14:31:38
【问题描述】:

这是隐藏的方法:

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代码中绝对没有区别,所以我认为编译的二进制文件是一样的。

【问题讨论】:

    标签: methods vala method-hiding


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 2014-05-26
      • 2015-07-28
      • 2010-09-28
      • 2017-12-16
      相关资源
      最近更新 更多