• 多态学习


    一、虚方法

    通过一个例子,人类,中国人,日本人自我介绍

        class Program
        {
            static void Main(string[] args)
            {
                Chinese chinese = new Chinese("小明");
                Chinese chinesetwo = new Chinese("小东");
                Japanese japanese = new Japanese("苍井空");
    
    
                Person[] person = { chinese , chinesetwo, japanese };
    
                for (int i = 0; i < person.Length; i++)
                {
                    person[i].SayHello();
                }
                Console.ReadLine();
            }
        }
        /// <summary>
        /// 人类基类
        /// </summary>
        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("我是人类");
            }
        }
        /// <summary>
        /// 中国人继承基类
        /// </summary>
        public class Chinese : Person
        {
            public Chinese(string name) : base(name)
            {
    
            }
            public override void SayHello()
            {
                Console.WriteLine("我是中国人,我叫{0}",this.Name);
            }
        }
        /// <summary>
        /// 日本人继承基类
        /// </summary>
        public class Japanese : Person
        {
            public Japanese(string name) : base(name)
            {
    
            }
            public override void SayHello()
            {
                Console.WriteLine("我是日本人,我叫{0}", this.Name);
            }
        }

    二、抽象类

    通过一个例子,狗叫猫叫

    class Program
        {
            static void Main(string[] args)
            {
                Animal animal = new Dog();
                animal.Bark();
                //狗叫、猫叫
                Console.ReadLine();
            }
        }
        /// <summary>
        /// 动物类
        /// </summary>
        public abstract class Animal
        {
            public abstract void Bark();
        }
        public class Dog : Animal
        {
            public override void Bark()
            {
                Console.WriteLine("狗叫");
            }
        }
        public class Cat : Animal
        {
            public override void Bark()
            {
                Console.WriteLine("猫叫");
            }
        }

     三、接口

      class Program
        {
            static void Main(string[] args)
            {
                //IFlyable flyable = new Person();
                IFlyable flyable = new Bird();
                flyable.Fly();
                Console.ReadLine();
            }
        }
        public interface IFlyable
        {
            void Fly();
        }
        public class Person : IFlyable
        {
            public void Fly()
            {
                Console.WriteLine("人在飞");
            }
        }
        public class Bird : IFlyable
        {
            public void Fly()
            {
                Console.WriteLine("鸟在飞");
            }
        }
  • 相关阅读:
    第九章 jQuery验证插件简介
    第八章 jQuery与Ajax应用
    第七章 jQuery操作表格及其它应用
    [wpf笔记] 1.xaml
    [2014-10-11]wpf数据绑定
    [2014-9-15]异步委托线程高级
    [2014-9-13]委托多线程
    [2014-9-12]多线程
    [2014-9-11]异步编程继续
    [2014-9-10]异步编程
  • 原文地址:https://www.cnblogs.com/liguix/p/14629857.html
Copyright © 2020-2023  润新知