众所周知,Java和J#禁止“多重继承”。但是,您可以使用Java和J#实现多个接口,例如Runnable。因此,您将如何编写自己的类以从JFC和WFC类继承,并同时实现JFC和WFC接口?这样有可能……吗?

我知道如何分别继承JFC和WFC类并一次实现一个接口。有人可以张贴示例代码吗?我正在阅读约翰·夏普(John Sharp)的微软出版社(Microsoft Press)书,他说,所有这一切都是基本的……有人可以帮忙吗?

最佳答案

class FooBooImpl implements Foo, Boo {
    public void iAmFoo() {
       // do Foo#iAmFoo
    }
    public void iAmBoo() {
       // do Boo#iAmBoo
    }
}


要么

class FooBooImpl extends Foo implements Boo {
    @Override
    public void iAmFoo() {
       super.iAmFoo();
       // do something
    }

    public void iAmBoo() {
       // do Boo#iAmBoo
    }
}


或(如果您决定委托)

class SuperFooBoo {
    private Foo foo;
    private Boo boo;

    public void iAmFoo() {
       foo.iAmFoo();
    }

    public void iAmBoo() {
       boo,iAmBoo();
    }
}


现在,您的主要限制是如果Foo和Boo定义相同签名的方法。您必须小心地将JFC和WFC混合使用(如果可以混合使用,我不太清楚),这两个都是可以插入本机代码的工具箱。

10-07 19:09