package
我在一个具有保护属性的类中有一个成员函数,我想在一个子类中覆盖它,在同一个包中,在不同的模块中。dmd 编译器喊我不能覆盖非虚拟函数。如果我制作函数public
,它实际上可以工作。
为什么包函数不是虚拟的?
示例代码:
module test.A;
class A {
package void doSomething() {}
}
module test.B;
import test.A;
class B : A {
package override void doSomething() {} // ERROR! overriding a non-virtual function
}