C#继承:实现+;延伸
在C#继承:实现+;延伸,c#,oop,inheritance,C#,Oop,Inheritance,在C#中可以这样做吗 我之所以需要它,是因为:我有两个类,其中一个是我将在我的类中实现的接口,但我还想使用另一个类中的方法,它做一些我想在我的类中使用的东西。C#不支持。您可以从一个类派生,并根据其他需要使用接口 语法: class MyClass : Foo, IFoo, IBar { } interface IFoo { } interface IBar { } class Foo { } 试试这个: using System; public interface A { v
C#
中可以这样做吗
我之所以需要它,是因为:我有两个类,其中一个是我将在我的类中实现的接口,但我还想使用另一个类中的方法,它做一些我想在我的类中使用的东西。C#不支持。您可以从一个类派生,并根据其他需要使用接口
语法:
class MyClass : Foo, IFoo, IBar
{
}
interface IFoo
{
}
interface IBar
{
}
class Foo
{
}
试试这个:
using System;
public interface A
{
void DoSmth();
}
public class B
{
public void OpA() { }
public void OpB() { }
}
public class ClassC : B, A
{
public void DoSmth(){}
}
请记住,您不能在特定的类级别继承两个类,它只能是一个类和任意数量的接口。它应该如下所示:
public class MyClass: ClassB, InterfaceA{
}
ClassB是基类
接口A是一个接口
您只能扩展一个基类,但可以实现多个接口。是的,您可以从一个类继承并实现任意数量的接口。ClassA
与ClassB
的使用有什么区别?你想把这两个函数都用作基类,对吗?@ryadavilli,但我该怎么做呢?我找不到正确的语法来使用…公共类MyClass:ClassA,IMyInterface{}@O.R.Mapper类A是一个接口,它没有实现。我将使实现成为我的MyClass,classB是一个实际的类,其代码是我希望我的类从中继承的。顺序重要吗?它确实。。。若从类继承,那个么基类必须先执行,然后是接口,否则编译器会出错。我自己测试过。
using System;
public interface A
{
void DoSmth();
}
public class B
{
public void OpA() { }
public void OpB() { }
}
public class ClassC : B, A
{
public void DoSmth(){}
}
public class MyClass: ClassB, InterfaceA{
}