C#中virtual 方法和abstract方法的区别

2025-02-01 20:02:40
推荐回答(2个)
回答1:

virtual 方法和abstract方法的区别如下:

1)virtual修饰的方法可以有实现,而abstract则不可以有实现;

2)virtual修饰的方法所在的类可以不是抽象类,而abstract修饰的方法所在的类必须是抽象类即abstract class;

3)virtual修饰的方法不需要子类重写(可选的,可重写也可以不重写),而abstract修饰的方法在子类里必须使用override关键字重写父类的abstract方法;

4)相同点:子类均可使用override关键字重写virtual或abstract修饰的方法。

回答2:

virtual 方法在声明的同时必须被实现,而子类在继承父类后,父类中的virtual 方法可以不去实现。而abstract方法在父类中只需要声明,不需要实现,子类继承父类后必须实现abstract方法,否则编译是不通过的,就和接口中声明的方法一样。