博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象的多态
阅读量:7099 次
发布时间:2019-06-28

本文共 791 字,大约阅读时间需要 2 分钟。

多态(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#中,运行时的多态是通过虚成员来实现的。上面的例子体现的就是运行时多态性。

 

 

转载于:https://www.cnblogs.com/shaosks/p/5238721.html

你可能感兴趣的文章
50免费为移动设计和开发的PSD文件极力推荐
查看>>
基因组印记
查看>>
34个漂亮的应用程序后台管理界面(系列三)
查看>>
double free or corruption (!prev): 0x080644c8 ***
查看>>
在VMware上搭建iPhone开发环境(转)
查看>>
MongoCola使用教程 1 - MongoDB的基本操作和聚合功能
查看>>
2012年3月份30个优秀的jquery插件集合 功能强大
查看>>
公共的Json操作C#类
查看>>
WebService如何调试及测试工具
查看>>
HDU-2091 水题
查看>>
【转】条件编译#ifdef的妙用详解_透彻
查看>>
jQuery.autocomplete 支持中文输入
查看>>
配置ubuntu的mac主题
查看>>
makefile文件的两种常用书写格式(搜索路径式+递归式)
查看>>
eclipse 快捷键大全,eclipse查找类,文件,添加注释
查看>>
Android4.0蓝牙使能的详细解析
查看>>
Freemarker常用技巧(三)
查看>>
Java Gradle入门指南之依赖管理(添加依赖、仓库、版本冲突) (转)
查看>>
使用反射生成并操作对象
查看>>
开源jabber(XMPP)架设内部即时通讯服务的解决方案
查看>>