zoukankan      html  css  js  c++  java
  • 多态学习

    一、虚方法

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

        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("鸟在飞");
            }
        }
  • 相关阅读:
    npm教程2
    02.RIP——CCNP学习笔记
    01.静态路由——CCNP学习笔记
    The 10th SWJTU ACM Online Tutorial
    visual studio 2005 常用按键
    Python垃圾回收机制
    私人网盘系统2.0—全部升级为layUI+PHP(持续更新中)
    Layui框架+PHP打造个人简易版网盘系统
    翻译app的开发全过程---编码+打包+上架
    值得认真学习的6 个 JavaScript 框架
  • 原文地址:https://www.cnblogs.com/liguix/p/14629857.html
Copyright © 2011-2022 走看看