C# 面向对象之多态
由于子类继承类父类,那么子类就拥有相同的行为,但子类的行为有时需要相互区别
子类就需要覆写父类的方法来实现子类特有的行为,这样的技术在c#中就叫做多态。
多态就是相同类型的对象调用相同的方法却表现出不同的现象
使用virtual和override关键字实现重写方法
只有基类成员声明为virtual和abstract时才能被派生类重写
而如果子类想改变虚方法的实现行为,则必须使用override关键字
最后执行结果为:
但是这样的代码存在一个问题
就是
Animal animal=new Animal ();
这个样的话毫无意义,因为这里的基类是为子类提供公共成员
那么我们可以将基类创建为抽象类利用abstract关键字就可以防止这种情况发生。
阻止派生类重写虚成员
利用sealed关键字来实现
如果在有个类来继承Horse并试图重写Voice方法就会收到错误信息
使用新成员隐藏基类成员
利用new关键字来实现
转载于:https://www.cnblogs.com/lbonet/p/6874829.html
C# 面向对象之多态相关推荐
- 12 Java面向对象之多态
JavaSE 基础之十二 12 Java面向对象之多态 ① 多态的概念及分类 多态的概念:对象的多种表现形式和能力 多态的分类 1. 静态多态:在编译期间,程序就能决定调用哪个方法.方法的重载就表现出 ...
- swift面向对象之多态与继承
swift面向对象之多态与继承 1.多态 运行时多态 运行时多态的要点 1.要有继承关系的存在 2.子类要重写父类的方法 3.父类类型的引用指向子类实例 2.继承 1.继承的注意 继承可以用于类而不能 ...
- Golang笔记-面向对象编程-多态/类型断言
面向对象编程-多态 基本介绍 变量(实例)具有多种形态.面向对象的第三大特征,在 Go 语言,多态特征是通过接口实现的.可 以按照统一的接口来调用不同的实现.这时接口变量就呈现不同的形态. 快速入门 ...
- Java 面向对象:多态的理解
Java 面向对象:多态的理解 一.多态的定义 一个对象的实际类型是确定的,但可以指向引用对象的类型可以有很多(父类,有关系的类) 操作符的多态 +可以作为算数运算,也可以作为字符串连接 类的多态 父 ...
- python面向对象三大特性_Python面向对象之多态原理与用法案例分析
本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...
- python中的多态用法_Python面向对象之多态原理与用法案例分析
本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...
- Python面向对象编程---多态
Python面向对象编程-多态 定义: 是一种使用对象的方式,子类重写父类的方法(非必须),调用不同子类对象的相同父类方法,可以产生不同的执行结果,简言之就是:传入不同的对象,产生不同的结果. 好处: ...
- Java面向对象之多态(来源于身边的案例)
2019年1月3日 星期四 Java面向对象之多态(来源于身边的案例) 1. 为什么要用多态? 1.1 多态是面向对象的三大特性之一 1.2 多态是基于接口设计的模型 1.3 多态具有横向扩展特性 1 ...
- Java面向对象:多态——基于继承的向上转型、方法重写、动态绑定
Java面向对象:多态 1.多态的概念 2.向上转型和向下转型 (1)向上转型 (2)向下转型 3.方法重写 4.动态绑定与静态绑定 5.多态的优缺点 ======================== ...
- Python学习 - 面向对象之多态
Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型:https://blog ...
最新文章
- 造成机器学习项目失败的7个原因
- linux文件系统pdf_一篇文章理解Ext4文件系统的目录
- 视图view的生命周期的一点见解
- 干货 | Elasticsearch7.X Scripting脚本使用详解
- 全国计算机等级考试题库二级C操作题100套(第43套)
- c语言 画线函数,c语言绘制函数曲线
- 都啥年代了,求你别再说Redis是单线程了!
- hdu 1269 tarjan求强连通分量
- python tuple
- 一个小例子介绍Obj-C的函数命名方式
- Java实现SQL格式化
- vs code 代码格式化整理
- 关于sfc /scannow后主题文件的重置
- CSP/CCF计算机职业资格认证题目:[201903-1	小中大]【已解决】
- 【行业专题报告】酒类(白酒、啤酒)-专题资料
- CutefishOS 0.6 Beta 发布
- thinkphp配置mysql集群_ThinkPHP教程_PHP框架之ThinkPHP(五)【连接数据库与主从数据库设置】...
- C语言打印平行四边形
- 基于AppCan移动云平台搭建“智慧移动门户”
- 怕抢不到演唱会门票?AI帮你做攻略!
热门文章
- mysql 语句中的national 、 comment
- POJ 1154题解,此题不难理解方法就是DFS,属于水题。不过有一些细节要注意。...
- Windows下使用VS2008+CUDA3.0开发的详细配置 (Setup CUDA 3.0 on VS2008 in Windows)
- 大数据之-Hadoop之HDFS的API操作_机架感知_副本存储的节点的选择---大数据之hadoop工作笔记0068
- IOS工作笔记003---windows给VmWare虚拟机OS系统安装xcode
- 如何在服务器上使用matlab
- 关于图像质量评测的分析
- Linux 重启php
- php调用shell的方法
- linux驱动编写(字符设备编写框架)