【问题标题】:C# Polymorphism [duplicate]C#多态[重复]
【发布时间】:2012-11-21 16:43:57
【问题描述】:

可能重复:
Try to describe polymorphism as easy as you can

我很难理解多态性到底是什么? 例如,这段代码如何使用多态性

我有一个汽车类和一个名为 countprice 的方法,我还有一个继承自汽车类的 jeep 类。

List<Car> carlist = new List<Car>();
Jeep jeepABC123 = new Jeep(800, 14, 20, 10, 3500);
carlist.Add(jeepABC123);
Sedan sedanGHA321 = new Sedan(600, 7, 20, 10);
carlist.Add(sedanGHA321)

// This code
foreach (Bil bil in carlist)
{
revenue = revenue + car.countprice();
}

【问题讨论】:

  • 是的,这是一个骗局。阅读 Alastair 链接到的帖子,如果您仍有不明白的地方,请重新提出您的问题。

标签: c#


【解决方案1】:

很简单,您可以将Jeeps 放入您的Cars 数组中

也许你也可以实现Truck,它继承自Car,那么你的carlist可以同时拥有Jeeps和Trucks。

多态意味着您可以将任何派生类放入为基类声明的变量中,这是面向对象编程的一个非常基本的概念。


当我开始编写简单的游戏时,我第一次真正体会到了多态性。

例如:

foreach(Enemy enemy in Enemies)
{
    enemy.update();
}

每个update 调用都可以做不同的事情,一个可以让敌人向你射击,另一个可以让敌人改变它的位置,但它们都有一个更新调用,所有更新调用都有同一个签名。

【讨论】:

  • 所以在我的情况下,收入 = 收入 + car.countprice();申请我的吉普车班?
  • @Benny 您确实在carlist 中添加了Jeep,不是吗?
  • 是的,我做到了 =) 我想我现在明白了
猜你喜欢
  • 2015-07-30
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 2012-01-01
  • 2012-05-29
  • 2014-06-30
  • 2018-01-15
相关资源
最近更新 更多