C#中的override virtual的用法
C++中虚函数的使用时只需在父类的函数声明中添加virtual,或者也可以把子类中的方法全部添加virtual,C#中的语法是怎么样?父类的还是virtual,但是子类的...
C++中虚函数的使用时只需在父类的函数声明中添加virtual,或者也可以把子类中的方法全部添加virtual,C#中的语法是怎么样?父类的还是virtual,但是子类的必须加override的吗?
展开
3个回答
展开全部
不能重写非虚方法或静态方法。 重写的基方法必须是 virtual、abstract 或 override 的。
override 声明不能更改 virtual 方法的可访问性。 override 方法和 virtual 方法必须具有相同的访问级别修饰符
您不能使用 new、static 或 virtual 修饰符来修改 override 方法。
重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是 virtual、abstract 或 override 的。
abstractclass ShapesClass
{
abstractpublicint Area();
}
class Square : ShapesClass
{
int side = 0;
public Square(int n)
{
side = n;
}
// Area method is required to avoid
// a compile-time error.
publicoverrideint Area()
{
return side * side;
}
staticvoid Main()
{
Square sq = new Square(12);
Console.WriteLine("Area of the square = {0}", sq.Area());
}
interface I
{
void M();
}
abstractclass C : I
{
publicabstractvoid M();
}
}
override 声明不能更改 virtual 方法的可访问性。 override 方法和 virtual 方法必须具有相同的访问级别修饰符
您不能使用 new、static 或 virtual 修饰符来修改 override 方法。
重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是 virtual、abstract 或 override 的。
abstractclass ShapesClass
{
abstractpublicint Area();
}
class Square : ShapesClass
{
int side = 0;
public Square(int n)
{
side = n;
}
// Area method is required to avoid
// a compile-time error.
publicoverrideint Area()
{
return side * side;
}
staticvoid Main()
{
Square sq = new Square(12);
Console.WriteLine("Area of the square = {0}", sq.Area());
}
interface I
{
void M();
}
abstractclass C : I
{
publicabstractvoid M();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询