Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我们在C语言中需要多重继承时,有什么变通方法?_C# - Fatal编程技术网

C# 当我们在C语言中需要多重继承时,有什么变通方法?

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

我在这里看到的所有类似问题都提到了多接口继承。然而,我不确定信息产业部如何能解决这个问题

比方说,我有两个不同方法的库类My_class_1和My_class_2。然后我想创建一个新类,它可以本地使用这两个类的方法,如:

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,仅此而已,您可以包含任意数量的类。谢谢你抽出时间。