黑马程序员技术交流社区
标题:
多态问题
[打印本页]
作者:
吴承烨
时间:
2013-6-18 17:36
标题:
多态问题
真鸭子 木鸭子 假鸭子 都能叫 多态的方法怎么写
作者:
changweihua
时间:
2013-6-18 20:56
public interface ISay
{
void Say();
}
public class RealDuck : ISay
{
public void Say()
{
Console.WriteLine("我是真鸭子");
}
}
public class WoodDuck : ISay
{
public void Say()
{
Console.WriteLine("我是木鸭子");
}
}
public class FakeDuck : ISay
{
public void Say()
{
Console.WriteLine("我是假鸭子");
}
}
public class TestDuck
{
public static void Test()
{
//接口多态
List<ISay> ducks = new List<ISay>{
new RealDuck(), new FakeDuck(), new WoodDuck()
};
foreach (var duck in ducks)
{
duck.Say();
}
Console.WriteLine("---------------------------");
List<Duck> ducks2 = new List<Duck>{
new RealDuck2(), new FakeDuck2(), new WoodDuck2()
};
foreach (var duck in ducks2)
{
duck.Say();
}
}
}
public class Duck
{
public virtual void Say(){}
}
public class RealDuck2 : Duck
{
public override void Say()
{
Console.WriteLine("我是RealDuck2");
}
}
public class WoodDuck2 : Duck
{
public override void Say()
{
Console.WriteLine("我是WoodDuck2");
}
}
public class FakeDuck2 : Duck
{
public override void Say()
{
Console.WriteLine("我是FakeDuck2");
}
}
复制代码
作者:
成都—陈超
时间:
2013-6-18 21:16
class Program
{
static void Main(string[] args)
{
YaZi yaZi;
ZhenYaZi zYaZi = new ZhenYaZi();
JiaYaZi jYaZi = new JiaYaZi();
MuYaZi mYaZi = new MuYaZi();
yaZi = zYaZi;
yaZi.Jiao();
yaZi = jYaZi;
yaZi.Jiao();
yaZi = mYaZi;
yaZi.Jiao();
Console.ReadKey();
}
}
class YaZi
{
public virtual void Jiao()
{
Console.WriteLine("我是鸭子");
}
}
class ZhenYaZi : YaZi
{
public override void Jiao()
{
Console.WriteLine("我是真鸭子");
}
}
class JiaYaZi : YaZi
{
public override void Jiao()
{
Console.WriteLine("我是假鸭子");
}
}
class MuYaZi : YaZi
{
public override void Jiao()
{
Console.WriteLine("我是木鸭子");
}
}
这个就是多态噢 。。。。
作者:
吴承烨
时间:
2013-6-18 21:28
谢谢参与
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2