黑马程序员技术交流社区
标题:
请问抽象类是如何实现多态的,举例说明
[打印本页]
作者:
不是炎亚纶
时间:
2013-11-10 21:13
标题:
请问抽象类是如何实现多态的,举例说明
本帖最后由 不是炎亚纶 于 2013-11-11 21:17 编辑
谢谢大家回答了 {:soso_e178:}
作者:
凤凰涅槃
时间:
2013-11-11 21:11
实现多态的手段之一就是virtual--在父类中定义虚方法,让继承该父类的子类重写父类中的虚方法从而实现多态。而抽象类实际上就是virtual的一个升级,抽象类中定义的抽象方法就是为了让子类重写的,你只要清楚了重写可以实现多态,那么你这个问题我想也就解决了。这里简单举个例子:
//定义一个抽象类
abstract class Person
{
//定义一个抽象方法
public abstract void SayHello();
}
class Teacher:Person
{
//实现抽象类中的抽象方法
public override void SayHello()
{
Console.WriteLine("同学们好!");
}
}
class Student : Person
{
public override void SayHello()
{
Console.WriteLine("老师好!");
}
}
复制代码
Person person = new Teacher();
person.SayHello();//运行结果:同学们好!
person = new Student();
person.SayHello();//运行结果:老师好!
Console.ReadKey();
复制代码
作者:
不是炎亚纶
时间:
2013-11-11 21:16
凤凰涅槃 发表于 2013-11-11 21:11
实现多态的手段之一就是virtual--在父类中定义虚方法,让继承该父类的子类重写父类中的虚方法从而实现多态 ...
我明白了 ,谢谢哈 !
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2