zoukankan      html  css  js  c++  java
  • Chapter 8. 面向对象(多态--虚方法)

    namespace 多态
    {
        public class Person
        {
            private string _name;
    
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
    
            public Person(string name)
            {
                this.Name = name;
            }
    
            //虚方法
            public virtual void SayHello()        
            {
                Console.WriteLine("我是人类");
            }
        }
    
        public class Chinese : Person
        {
            public Chinese(string name)
                : base(name)
            {
    
            }
    
            //方法重写
            public override void SayHello()
            {
                Console.WriteLine("我是中国人,我叫{0}", this.Name);
            }
        }
    
        public class Japanese : Person
        {
            public Japanese(string name)
                : base(name)
            {
    
            }
    
            //方法重写
            public override void SayHello()
            {
                Console.WriteLine("我是日本人,我叫{0}", this.Name);
            }
        }
    
        public class Korean : Person
        {
            public Korean(string name)
                : base(name)
            {
    
            }
    
            //方法重写
            public override void SayHello()
            {
                Console.WriteLine("我是韩国人,我叫{0}", this.Name);
            }
        }
    
        public class American : Person
        {
            public American(string name)
                : base(name)
            {
    
            }
    
            //方法重写
            public override void SayHello()
            {
                Console.WriteLine("我是美国人,我叫{0}", this.Name);
            }
        }
    
        public class Englishman : Person
        {
            public Englishman(string name)
                : base(name)
            {
    
            }
    
            //方法重写
            public override void SayHello()
            {
                Console.WriteLine("我是英国人,我叫{0}", this.Name);
            }
        }
    }
    class Program
        {
            static void Main(string[] args)
            {
                Chinese cn1 = new Chinese("程家阳");
                Chinese cn2 = new Chinese("王旭东");
                Japanese j1 = new Japanese("树下君");
                Japanese j2 = new Japanese("井边子");
                Korean k1 = new Korean("金秀贤");
                Korean k2 = new Korean("李钟硕");
                American a1 = new American("阿黛尔");
                American a2 = new American("小甜甜布兰妮");
    
                Person[] p = { cn1, cn2, j1, j2, k1, k2, a1, a2,
                                 new Englishman("格林"),new Englishman("玛利亚") };
    
                for (int i = 0; i < p.Length; i++)
                {
                    p[i].SayHello();
                }
                Console.ReadLine();
        }


  • 相关阅读:
    同步、异步、阻塞和非阻塞区别
    SpringMVC文件上传实现
    Java注解入门
    SpringMVC实现一个controller写多个方法
    提高tomcat的并发能力
    人一生追求的是什么
    python class对象转换成json/字典
    python可分组字典
    python enumerate函数用法
    Python特殊语法--filter、map、reduce、lambda
  • 原文地址:https://www.cnblogs.com/xiao55/p/5598346.html
Copyright © 2011-2022 走看看