C#抽象方法和虚方法
时间: 2023-10-19 10:25:48 浏览: 111
抽象方法和虚方法都是面向对象编程中的概念,用于实现多态性和继承。
抽象方法是一个没有实现的方法,它必须在抽象类或接口中声明。抽象方法只有方法的签名,没有具体的实现代码。子类必须实现抽象方法,否则子类也必须声明为抽象类。在C#中,使用`abstract`关键字来声明抽象方法。
示例代码:
```csharp
abstract class Animal
{
public abstract void MakeSound();
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("汪汪汪!");
}
}
class Program
{
static void Main(string[] args)
{
Animal dog = new Dog();
dog.MakeSound(); // 输出:汪汪汪!
}
}
```
虚方法是一个可以在基类中定义并在派生类中重写的方法。虚方法可以有默认的实现代码,但也可以在派生类中进行重写。在C#中,使用`virtual`关键字来声明虚方法。
示例代码:
```csharp
class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("动物发出声音!");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("汪汪汪!");
}
}
class Program
{
static void Main(string[] args)
{
Animal animal = new Animal();
animal.MakeSound(); // 输出:动物发出声音!
Dog dog = new Dog();
dog.MakeSound(); // 输出:汪汪汪!
}
}
```
总结起来,抽象方法是一个没有实现的方法,必须在派生类中实现;而虚方法是一个可以在派生类中重写的方法,有默认的实现代码。
阅读全文