zoukankan      html  css  js  c++  java
  • c#基础学习(0706)之使用虚方法实现多态

    使用虚方法实现多态

    namespace _0706
    {
        class Program
        {
            static void Main(string[] args)
            {
                //这个时候调用的是父类的方法
                Person p = new Person();
                Person p1 = new American();//这个时候调用的是American里面的方法
                p.SayNationality();
    
                //Person p1 = new Japanese();
                Person[] pers = new Person[5];
                pers[0] = new American();
                pers[1] = new Chanese();
                pers[2] = new Japanese();
                pers[3] = new Chanese();
                pers[4] = new American();
                //遍历pers数组
                for (int i = 0; i < pers.Length; i++)
                {
                    //判断数组类型
                    //if(pers[i] is American)
                    //{
                    //    ((American)pers[i]).SayNationality();
                    //}else if(pers[i] is Chanese)
                    //{
                    //    ((Chanese)pers[i]).SayNationality();
                    //}
                    //else if (pers[i] is Japanese)
                    //{
                    //    ((Japanese)pers[i]).SayNationality();
                    //}
    
                    //将上面的判断简化
                    pers[i].SayNationality();//这句话体现了多态,同样的方法,根据调用的对象不同,体现的内容
                }
                Console.ReadKey();
            }
        }
        public class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public string Email { get; set; }
            //添加一个SayNationality()方法
            //第一步:将父类中的对应刚发前加virtual关键字,即:将对应的方法变成“虚方法”
            public virtual void SayNationality()
            {
                Console.WriteLine("地球人");
            }
        }
        public class American : Person
        {
            //通过使用override关键字将父类Person中的虚方法SayNationality重写为子类自己想要的。
            //说出自己的国籍
            public override void SayNationality()
            {
                Console.WriteLine("USA");
            }
        }
        public class Japanese : Person
        {
            public override void SayNationality()
            {
                Console.WriteLine("日本");
            }
        }
        public class Chanese : Person
        {
            public override void SayNationality()
            {
                Console.WriteLine("中国");
            }
        }
    }
  • 相关阅读:
    hibernate课程 初探单表映射2-7 hbm配置文件常用设置
    SQL partition (小组排序)
    修改input的text 通过jquery的html获取值 未变化
    ASP.NET MVC5使用Area区域
    MVC 缓存
    C# 后台访问webapi
    分布式系统
    滴滴出行技术总监:关于技术选型的那些事儿
    Json Self referencing loop detected
    VMWare 安装 Eclipse
  • 原文地址:https://www.cnblogs.com/chao202426/p/9274597.html
Copyright © 2011-2022 走看看