黑马程序员技术交流社区

标题: 请问抽象类是如何实现多态的,举例说明 [打印本页]

作者: 不是炎亚纶    时间: 2013-11-10 21:13
标题: 请问抽象类是如何实现多态的,举例说明
本帖最后由 不是炎亚纶 于 2013-11-11 21:17 编辑

谢谢大家回答了 {:soso_e178:}
作者: 凤凰涅槃    时间: 2013-11-11 21:11
实现多态的手段之一就是virtual--在父类中定义虚方法,让继承该父类的子类重写父类中的虚方法从而实现多态。而抽象类实际上就是virtual的一个升级,抽象类中定义的抽象方法就是为了让子类重写的,你只要清楚了重写可以实现多态,那么你这个问题我想也就解决了。这里简单举个例子:
  1. //定义一个抽象类
  2.     abstract class Person
  3.     {
  4.         //定义一个抽象方法
  5.         public abstract void SayHello();
  6.     }
  7.     class Teacher:Person
  8.     {
  9.         //实现抽象类中的抽象方法
  10.         public override void SayHello()
  11.         {
  12.             Console.WriteLine("同学们好!");
  13.         }
  14.     }
  15.     class Student : Person
  16.     {
  17.         public override void SayHello()
  18.         {
  19.             Console.WriteLine("老师好!");
  20.         }
  21.     }
复制代码
  1. Person person = new Teacher();
  2.             person.SayHello();//运行结果:同学们好!

  3.             person = new Student();
  4.             person.SayHello();//运行结果:老师好!

  5.             Console.ReadKey();
复制代码

作者: 不是炎亚纶    时间: 2013-11-11 21:16
凤凰涅槃 发表于 2013-11-11 21:11
实现多态的手段之一就是virtual--在父类中定义虚方法,让继承该父类的子类重写父类中的虚方法从而实现多态 ...

我明白了 ,谢谢哈 !




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2