C# 关于抽象方法和接口方法的问题
大家好,我对抽象类和接口有些怀疑 我不是在问接口和抽象类之间的区别。我只是想问一下抽象方法和接口方法的区别 抽象方法与接口方法相同。我知道,如果我们继承子类中的接口和抽象类,那么我们必须实现这些边方法,但我们不能实现非抽象方法。所以C# 关于抽象方法和接口方法的问题,c#,.net,interface,abstract-class,abstract-methods,C#,.net,Interface,Abstract Class,Abstract Methods,大家好,我对抽象类和接口有些怀疑 我不是在问接口和抽象类之间的区别。我只是想问一下抽象方法和接口方法的区别 抽象方法与接口方法相同。我知道,如果我们继承子类中的接口和抽象类,那么我们必须实现这些边方法,但我们不能实现非抽象方法。所以 我的问题是抽象方法和接口有什么不同 及 2.另一个问题是我们可以在抽象类中部分实现非抽象方法,是否可以在抽象类中部分实现抽象方法 我也提到了很多网站,但没有一个网站给出了第二个问题的解决方案 代码问题 这是我的抽象类,有一个抽象方法(xxx),另一个非抽象方法(yy
public class OrdinaryClass : AbstractRam
{
public OrdinaryClass()
{
//
// TODO: Add constructor logic here
//
}
public override int xxx()
{
return 1;
}
}
public class OrdinaryClass2 : InterfaceRam
{
public OrdinaryClass2()
{
//
// TODO: Add constructor logic here
//
}
public int xxx()
{
return 1;
}
}
让我们看看我的xxx方法,两种方法都是一样的,没有太大的区别
问:有什么区别吗?如果是一样的,那么哪一个是最好的方法
interface IA
{
int xxx();
}
abstract class B
{
public abstract int yyy();
}
class C : B, IA
{
public int xxx()
{
return 1;
}
public int yyy()
{
return 1;
}
}
yyy
定义实际上隐藏了B中的抽象方法,需要声明为public override int yyy()…
,以防止出现这种情况
OrdinaryClass
提供了xxx
的一个实现OrdinaryClass2
隐藏了这个抽象方法,并提供了它自己的xxx
。如(1)所述。请阅读C中隐藏的方法,了解更多详细信息,例如和最后我自己找到了答案
- 抽象方法和接口方法的最大区别在于
“部分”是什么意思?这已经被问过很多次了。所以一个新的问题必须更加具体。而且,“我们不能实现非抽象方法”也不是真的。@HenkHolterman嗯,我们可以在父(抽象)中部分实现非抽象方法类,然后我们可以在子类中完全实现该方法,是否可以抽象方法?理解?csc.exe:
MyMethod()
无法声明主体,因为它被标记为抽象。抽象(或在VB中MustInherit)方法不能包含实现“实现的方法或其使用可以标记为virtual
,只要被重写的方法调用基实现,就可以在派生类中被重写。好的。”。好。现在请看我的问题+1对于您的口头解释,您刚才对您的问题提供了一个“抽象类和接口之间的区别是什么”的答案,您声称这不是在问“抽象类和接口之间的区别是什么?”一开始我为你写了几乎相同的词,你抱怨这不是你想要的。失言…:(
interface IA
{
int xxx();
}
abstract class B
{
public abstract int yyy();
}
class C : B, IA
{
public int xxx()
{
return 1;
}
public int yyy()
{
return 1;
}
}