zoukankan      html  css  js  c++  java
  • C#基础:多态:基类可以定义并实现虚(virtual)方法,派生类可以重写(override)这些方法

     

     

    原理:基类可以定义并实现虚(virtual)方法,派生类可以重写(override)这些方法

    实例代码:

     

    class Shape

        {

            //

            public int X{get;private set; }

            public int Y{get;private set;}

            public int Height{get;set;}

            public int Width{get;set;}

            //

            public virtual void Draw()

            {

                Console.WriteLine("Performing base class drawing tasks");

            }

        }

        class Circle : Shape

        {

            public override void Draw()

            {

                // Code to draw a circle...

                Console.WriteLine("Drawing a circle");

                base.Draw();

            }

        }

        class Rectangle : Shape

        {

            public override void Draw()

            {

                // Code to draw a rectangle...

                Console.WriteLine("Drawing a rectangle");

                base.Draw();

            }

        }

        class Triangle : Shape

        {

            public override void Draw()

            {

                // Code to draw a triangle...

                Console.WriteLine("Drawing a triangle");

                base.Draw();

            }

        }

        class Program

        {

            static void Main(string[] args)

            {

                List<Shape> shapes = new List<Shape>();

                shapes.Add(new Rectangle());

                shapes.Add(new Triangle());

                shapes.Add(new Circle());

                foreach (Shape s in shapes)

                {

                    s.Draw();

                }

                Console.WriteLine("press any key to exit.");

                Console.ReadKey();

            }

        }

     

  • 相关阅读:
    volatile 能使得一个非原子操作变成原子操作吗?
    什么是线程局部变量?
    使用idea插件进行java代码生成
    mybatis plus+dynamic事务导致多数据源切换失败
    10_docker-compose
    Ubuntu的Python从2.x升级到3.x
    idea查看控制台数据mybatis的sql完整语句
    iframe高度处理
    angular路由
    去掉iPhone、iPad的默认按钮、输入框样式
  • 原文地址:https://www.cnblogs.com/lqsilly/p/2917609.html
Copyright © 2011-2022 走看看