How does one implement polymorphism in Python or C#?
时间: 2024-10-18 10:07:24 浏览: 26
在Python中,实现多态主要是通过鸭子类型(Duck Typing)的概念,即只要对象的行为符合预期,无需关心其具体的内部实现。例如,你可以将列表、元组甚至生成器作为函数参数,因为它们都有`iter()`方法,实现了迭代器协议。
在C#中,多态主要依赖于继承和接口。你可以通过以下方式实现:
1. **继承**:派生类可以重写基类的方法,这就是方法重写(Override)。当你通过基类引用调用方法时,会调用实际对象的子类版本。
```csharp
class BaseClass {
public virtual void DoSomething() {
Console.WriteLine("Base Class");
}
}
class DerivedClass : BaseClass {
public override void DoSomething() {
Console.WriteLine("Derived Class");
}
}
```
2. **接口**:通过实现接口,类可以获得多个方法契约,这称为接口多态(Interface Polymorphism)。每个类需要提供接口所需的所有方法实现。
```csharp
interface IMyInterface {
void MyMethod();
}
class MyClass : IMyInterface {
public void MyMethod() {
Console.WriteLine("Method from MyClass");
}
}
```
在使用时,只需对接口进行操作即可,实例的类型不会影响方法的实际调用。
阅读全文