我有这些课程:
public class myClassPage : System.Web.UI.Page { public myClassPage () { } } public class myClassControl : System.Web.UI.UserControl { public myClassControl () { } }
我想要另一个类扩展这些类,有些像:
public class myClassData : myClassPage,myClassControl { public myClassData () { } }
可能吗?或者我该怎么办?
解决方法
在需要扩展两个类的情况下,您可能会希望通过继承来支持组合,并且可以像其他答案一样使用接口.一个例子:
首先定义你的界面
interface IFoo { void A(); } interface IBar { void B(); }
然后创建实现每个接口的具体类
class Foo : IFoo { public void A() { // code } } class Bar : IBar { public void B() { // code } }
最后,在类中你想展现两组行为,你可以实现每个接口,但是用具体的类组合实现.
public class Baz : IFoo,IBar { IFoo foo = new Foo(); // or inject IBar bar = new Bar(); // or inject public void A() { foo.A(); } public void B() { bar.B(); } }