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中的不同类型的对象来实现不同的方法。
如对本文有疑问, 点击进行留言回复!!
两种方法 更改jupyter notebook的打开路径/默认工作路径
RobotFramework接口自动化-全局变量解决保持登录问题
mysql中如何实现 row_number分组求topN的功能
SQLSERVER中RANK OVER(PARTITION BY)的用法
网友评论