C# 当我们在C语言中需要多重继承时,有什么变通方法?
我在这里看到的所有类似问题都提到了多接口继承。然而,我不确定信息产业部如何能解决这个问题 比方说,我有两个不同方法的库类My_class_1和My_class_2。然后我想创建一个新类,它可以本地使用这两个类的方法,如:C# 当我们在C语言中需要多重继承时,有什么变通方法?,c#,C#,我在这里看到的所有类似问题都提到了多接口继承。然而,我不确定信息产业部如何能解决这个问题 比方说,我有两个不同方法的库类My_class_1和My_class_2。然后我想创建一个新类,它可以本地使用这两个类的方法,如: public class My_Application : My_Class_1, My_Class_2 { public My_Application(){ method_from_Class1(); smth_property
public class My_Application : My_Class_1, My_Class_2 {
public My_Application(){
method_from_Class1();
smth_property_declared_in_My_Class_2 = "hello";
}
}
然而,这在C中是不可能的。用其他类扩展/丰富类的灵活变通方法是什么?在PHP中,这是难以置信的简单,就在类的顶端,我们可以:
use example_trait_1;
use example_trait_2;
我宁愿不使用接口;在我看来,他们与解决这个问题无关
p、 我不想为这些类创建初始化对象。我希望它们是应用程序类的本机部分。正如其他人所提到的,这是不可能的,因为这不是继承,但一个解决方法似乎是在继承Class2的类中有一个Class1类型的公共属性 这也解决了我现在在看哪门课的问题?因为当您想要Class1类型的东西时,需要显式地提到属性
如果您需要首先修改Class1,那么您只需创建一个单独的类,该类首先继承Class1,然后使公共属性为该新类型。如果可能,在这种情况下或组合中使用接口,但取决于使用情况支持多重继承的语言比不支持多重继承的语言少。继承不是一种代码重用机制。这意味着一个类与另一个类型有is-a关系。您可以通过接口轻松地指定这一点。如果您想重用代码,请使用其他机制,如泛型或委托给其他对象。大多数语言不使用多重继承的原因是Class1和Class2可能都有相同的方法Method1。你要给哪一个打电话?如果它们包含名为Property1的同一字段或属性,该怎么办?你会选哪一个?对不起。这是一个重复的问题,尽管你提出了相反的请求。@T.Todua…因为这是一个完全相同的问题,用不同的词修饰。仅仅因为你不喜欢答案并不意味着你有权免费复制。通过这样做,你正在将一种是一种关系转变为一种有一种依赖关系。这不是最好的答案,但无论如何,一门课只能是另一件事。。。从我对这个问题的理解来看,他试图使用继承来重用代码。在这种情况下,不管是a,还是有a,事实上,从逻辑上讲,他可能根本不想要继承权,只想要有a的关系。我能想到的唯一逻辑情况是,可以合理地说,某件东西是多个其他东西,比如说,买方是个人和购物者。但购物者是一个人。所以你只需要有一个继承Person的Shopper类,让Buyer成为一个Shopper。@Katerine459好吧,是的,我有一个类,它有一个要求,让其他类的方法和属性像本地类一样类似于继承。在PHP中,我们只使用xyz,仅此而已,您可以包含任意数量的类。谢谢你抽出时间。