zoukankan      html  css  js  c++  java
  • C#通过虚方法实现方法重写—多态。

    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中的不同类型的对象来实现不同的方法。

  • 相关阅读:
    设计模式学习笔记之设计原则
    设计模式学习笔记之生成器模式
    设计模式学习笔记之适配器模式、外观模式
    java中的日期类型之间转换
    JS刷新当前页面的几种方法总结
    Java_枚举
    动态规划详解_2
    Java算法-动态规划详解
    Java经典算法题_2
    Java算法
  • 原文地址:https://www.cnblogs.com/zhangyuhao/p/10432464.html
Copyright © 2011-2022 走看看