C#中的抽象方法和虚方法有什么区别?

2024-11-18 07:23:39
推荐回答(5个)
回答(1):

抽象方法是只有定义、没有实际方法体的函数,它只能在抽象函数中出现,并且在子类中必须重写;虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。
重写的子类虚函数就是被覆盖了。

回答(2):

抽象方法就是纯虚方法:只有定义,没有实现。

private virtual foo() = 0;

有抽象方法的类就是抽象类。

抽象类不能用来定义对象,必须要作为其他类的基类,并在派生类中重载抽象方法。

回答(3):

我来也。C#父类子类继承多态虚方法抽象方法class
父类
{
虚方法
}
class
子类
:父类
{
可重载虚方法
}多态,如:1:静态多态,重载,方法参数类型或个数不同,方法名相同。如:public
void
F(int
a){}

public
void
F(){}
//这两个方法构成重载2:动态多态,虚拟如:class
A{public
virtual
F(){}
}
class
B
:
A
{public
ovverride
F()
{}
//重写父类方法}abstract
抽象类
{abstract
抽象方法}
//抽象方法不能有实现,如:abstract
void
F();
//声明一个函数
F

回答(4):

FantasyChump - 总监 八级 正解!顶一个。
其实java当中的方法都是虚方法,所以在java中重写方法的时候不用override.
============================
我也来顶一个,回答简单明了。

回答(5):

FantasyChump - 总监 八级 正解!顶一个。
其实java当中的方法都是虚方法,所以在java中重写方法的时候不用override.