网站制作完成之后,新年免费ppt模板下载,电商网站大全,昆明网站建设 网络服务什么是多态一句话解释#xff0c;同一种事物表现出的多种形态。看完以后#xff0c;应该还是蒙的#xff0c;还是看代码吧。。现有Person类#xff0c;Student类#xff0c;Teacher类其中Person类是Student和Teacher类的父类。换句话说#xff0c;Student类和Teacher类都… 什么是多态 一句话解释同一种事物表现出的多种形态。 看完以后应该还是蒙的还是看代码吧。。 现有Person类Student类Teacher类 其中Person类是Student和Teacher类的父类。换句话说Student类和Teacher类都继承自Person类。 在Person类中有一个SayHi方法Student和Teacher的SayHi方法肯定是不一样的。 现要求在一个静态方法中他的形参是Person p实参可能是Student类或者是Teacher类在函数内部通过调用p.SayHi()来达到调用其不同子类的不同SayHi方法。 如果实现了上面的要求可以说就是多态的实现。 三种方式实现多态 通过虚方法 //person类父类 class Person { public virtual void SayHi() { Console.WriteLine(“我是Person类中的SayHi方法”); } } //student类子类 class Student : Person { public override void SayHi() { Console.WriteLine(“我是Student类中的SayHi方法”); } } //Teacher类子类 class Teacher : Person { public override void SayHi() { Console.WriteLine(“我是Teacher类中的SayHi方法”); } } 通过抽象类 //person类父类 abstract class Person { public abstractvoid SayHi(); } //student类子类 class Student : Person { public override void SayHi() { Console.WriteLine(“我是Student类中的SayHi方法”); } } //teacher这里就不写出来了 通过接口 public interface IPerson { void SayHi(); } class Student : IPerson { public void SayHi() { Console.WriteLine(“我是Student类中的SayHi方法”); } } 通过虚方法实现多态的完整代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态的实现 { class Program { static void Main(string[] args) { Student stu new Student(); Teacher tea new Teacher(); Fun(stu); Fun(tea); Console.ReadKey(); } static void Fun(Person p) { p.SayHi(); } } class Person { public virtual void SayHi() { Console.WriteLine(我是Person类中的SayHi方法); } } class Student : Person { public override void SayHi() { Console.WriteLine(我是Student类中的SayHi方法); } } class Teacher : Person { public override void SayHi() { Console.WriteLine(我是Teacher类中的SayHi方法); } } } 运行结果 我是Student类中的SayHi方法 我是Teacher类中的SayHi方法 结束语 写这篇随笔的目的是出于锻炼自己的表达能力和思维逻辑能力的若给你后面的学习带来误解请谅解。 感谢博客园 感谢黑马训练营 2014/1/17 15:00 转载于:https://www.cnblogs.com/icez/p/3528665.html