zoukankan      html  css  js  c++  java
  • 面向对象的多态

    多态(Polymorphism)顾名思义就是多种状态。在面向对象语言中,多态是指一个实体同时具有多种形式,它是面向对象的一个重要特征。同一操作作用于不同的对象,可以有不同解释,产生不同的结果。多态要通过继承来实现。

    可以把不同的子类都当做父类来看,在运行时,可以通过指向几类的指针,来调用实现派生类中的方法,这样就屏蔽不同子类之间的差异,写出通用的代码,以适应需求的不断变化。

       public abstract class Animal

        {

            public abstract void Eat();

        }

     

        public class Cat : Animal

        {

            public override void Eat()

            {

                Console.WriteLine("Cat  Eat");

            }

        }

        public class Dog : Animal

        {

            public override void Eat()

            {

                Console.WriteLine("Dog    Eat");

            }

        }

     

       Animal animal = new Cat();

       animal .Eat(); //输出:Cat  Eat

        animal  = new Dog ();

       animal .Eat(); //输出:Dog    Eat

      这样父对象可以根据当前赋值给他的子对象的特性以不同的方式运作,也就是说父亲的行为像儿子,而不是儿子的行为像父亲。

      多态分为编译时多态和运行时多态:

      编译时多态是通过重载来实现的,对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。

      运行时多态性是指直到系统运行时,才根据实际情况来决定实现何种操作。在C#中,运行时的多态是通过虚成员来实现的。上面的例子体现的就是运行时多态性。

     

  • 相关阅读:
    tornado硬件管理系统-数据存储与表格实时监控(8)
    db2 内存研究
    Oracle dml开始到commit期间的流程
    用户界面与业务逻辑的分离
    计算器核心算法——终结版
    计算器核心算法——中缀表达式转为后缀表达式
    计算器核心解析算法(上)
    Qt中的字符串类
    初探Qt中的消息处理
    计算器界面代码重构
  • 原文地址:https://www.cnblogs.com/shaosks/p/5238721.html
Copyright © 2011-2022 走看看