C#通过虚方法实现方法重写—多态。
程序员文章站
2022-12-15 16:09:07
实例中,可以通过person中的不同类型的对象来实现不同的方法。 ......
class program { //希望person存的是哪个类的对象就调用哪个类的方法 //第一步 将父类中对应方法家virtual关键字 变为虚方法(子类可重写) //子类中方法用override关键字将父类虚方法重写 static void main(string[] args) { person[] person = new person[3]; person[0] = new american(); person[1] = new japan(); person[2] = new chinese(); for (int i = 0; i < person.length; i++) { //由于person是person类的,如果我想让每个人说出他的国籍 //只能判断类型然后强制转换: //if (person[0]is american) //{ // ((american)person[0]).say(); //} //希望person存的是哪个类的对象就调用哪个类的方法 //第一步 将父类中对应方法家virtual关键字 变为虚方法(子类可重写) //子类中方法用override关键字将父类虚方法重写 person[i].say(); //这句话就体现了多态 } } } public class person { public string name { get; set; } public int age { get; set; } public virtual void say() { console.write("person"); } } public class american:person { public override void say() { console.writeline("美国人"); } } public class japan:person { public override void say() { console.writeline("日本人"); } } public class chinese : person { public override void say() { console.writeline("中国人"); } }
实例中,可以通过person中的不同类型的对象来实现不同的方法。
上一篇: SQL语句在数据库中可以执行在mybatis执行不了
下一篇: 女汉子的世界没有什么是不可能的