在C#中如何实现方法的重载和重写,并阐述它们与多态的联系?能否提供示例代码来加深理解?
时间: 2024-12-07 15:29:02 浏览: 12
C#中方法的重载和重写是实现多态的关键机制。要掌握它们,推荐深入学习《C#多态入门指南:原理与实战案例》。该指南通过丰富的案例和详尽的解释,帮助理解多态及其相关概念。
参考资源链接:[C#多态入门指南:原理与实战案例](https://wenku.csdn.net/doc/5sif6mqmsc?spm=1055.2569.3001.10343)
方法重载(Overloading)是在同一个类中定义多个同名方法,但每个方法的参数列表不同。这使得根据不同的参数类型或数量调用相同名称的方法成为可能。例如:
```csharp
class Calculator
{
public int Add(int a, int b) // 第一个重载版本
{
return a + b;
}
public double Add(double a, double b) // 第二个重载版本
{
return a + b;
}
}
```
在上述代码中,`Calculator` 类有两个 `Add` 方法的重载版本,一个是整数相加,另一个是浮点数相加。
方法重写(Overriding)涉及到在派生类中提供与基类方法签名相同的新方法实现。这要求基类中的方法必须被声明为虚方法(`virtual`),而派生类中的方法使用`override`关键字进行重写。例如:
```csharp
class Animal
{
public virtual void Speak() // 基类中的虚方法
{
Console.WriteLine(
参考资源链接:[C#多态入门指南:原理与实战案例](https://wenku.csdn.net/doc/5sif6mqmsc?spm=1055.2569.3001.10343)
阅读全文