你可以在VB.Net中的匿名类型的对象中覆盖基类的方法吗?

时间:2015-02-19 17:37:07

标签: java vb.net

就是这样:

是否可以创建一个匿名类型的对象,该对象可以在VB.NET中覆盖其基类的方法?

例如,在Java中我们可以做到:

public class Foo {

    public static Foo bar = new Foo() {
        @Override
        public void doStuff(){
            System.out.println("Look, I'm doing stuff!");
        }
    };

    public void doStuff() {
        //do nothing
    }
    public static void main(String[] args) {
        Foo.bar.doStuff();
    }   
}

//Output:
//Look, I'm doing stuff!

这在VB.NET中是否可行?

1 个答案:

答案 0 :(得分:2)

看起来你可以通过声明要覆盖的方法作为类的属性的委托函数来模仿大部分功能。

例如:

Public Class Foo

    Public ReadOnly doStuff As delDoStuff
    Delegate Sub delDoStuff()
    Private Sub New(del As delDoStuff)
        Me.doStuff = del
    End Sub

    Public Shared bar As New Foo(AddressOf barDoStuff)
    Private Sub barDoStuff
        WL("Look, I'm doing stuff!")
    End Sub 

End Class

任何人都有更好的方法吗?