虽然理解了继承和封装,但是多态总是忘记其定义,很容易被忽略,通过这一次的查找资料和总结能帮助自己更好的理解

1/多态的概念:

同一操作作用于不通过的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。

2/多态需要了解的其他概念:重载、重写、虚方法、抽象方法以及隐藏方法。

隐藏方法:

public abstract class Biology{public abstract void Live();}public class Animal : Biology{public override void Live(){Console.WriteLine("Animal重写的Live");//throw new NotImplementedException();
            }public void Sleep(){Console.WriteLine("Animal Sleep");}public int Sleep(int time){Console.WriteLine("Animal在{0}点Sleep", time);return time;}public virtual void EatFood(){Console.WriteLine("Animal EatFood");}}public class Cat : Animal{public override void EatFood(){Console.WriteLine("Cat EatFood");//base.EatFood();
            }new public void Sleep(){Console.WriteLine("Cat Sleep");}//public new void Sleep()//{//    Console.WriteLine("Cat Sleep");//}}

运行:

Animal animal = new Cat();
animal.Sleep();
animal.EatFood();

得到的结果是

Animal Sleep

Cat EatFood

(1)隐藏方法不但可以隐藏基类中的虚方法,而且也可以隐藏基类中的非虚方法。
(2)隐藏方法中父类的实例调用父类的方法,子类的实例调用子类的方法。
(3)和上一条对比:重写方法中子类的变量调用子类重写的方法,父类的变量要看这个父类引用的是子类的实例还是本身的实例,如果引用的是父类的实例那么调用基类的方法,如果引用的是派生类的实例则调用派生类的方法。

转载于:https://www.cnblogs.com/zmztya/p/7086239.html

c# 之继承、封装、多态相关推荐

  1. 面向对象之三大特性:继承,封装,多态

    python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分 ...

  2. java 继承 封装 多态 详解

    1.继承 1.1子类能够继承父类的哪些成员? 1.1.1 public 成员 1.1.2 protected 成员 1.1.3 同一个包中:缺省访问类型的成员 1.1.4 打死不能继承private成 ...

  3. 继承 封装 多态 (基础)描述性理解

    面向对象程序设计具有:封装性,继承性,多态性. 1封装 封装是面向对象编程的核心思想.将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想.例如我们使用的电脑,电视, ...

  4. JavaScript 继承 封装 多态实现及原理详解

    封装 就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 封装是面向对象的特征之一,是对象和类概念的主要特性. 简单的说,一个类就是一个封装了 ...

  5. 本质论之封装继承和多态的介绍

    关于 类,我有一些话想说 说到类那就说到了面向对象的灵魂了,没有它也就没有了封装.继承and多态这些东西了.我还记得在读研期间每次看到这些都望而却步,甚至我搞不懂对象和类的区别(这里防止有人也不知道区 ...

  6. 前端 JavaScript 设计模式前奏--面向对象-封装、继承、多态

    JavaScript 面向对象 如图所示: 1. 什么是面向对象 1. 面向对象的概念 2. 面向对象的三要素: 继承/封装/多态 ⭐️ 3. JS 的应用举例 4. 面相对象的意义 --- 数据结构 ...

  7. Go 学习笔记(36)— 基于Go方法的面向对象(封装、继承、多态)

    Go 面向对象编程的三大特性:封装.继承和多态. 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式 继承:使得子类具有父类的属性和方法或者重新定义.追加属性和方法等 多态:不同对象中同种行为的不 ...

  8. java 封装 继承 堕胎_JAVA封装、继承、多态

    封装 1.概念: 将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: a.只能通过规定的方法访问数据 b.隐藏类的实例细节,方便修改和实 ...

  9. Python面对对象编程——结合面试谈谈封装、继承、多态,相关习题详解

    1.面向对象的三大特征 封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可以设置访问权限; 继承:子类需要复用父类里面的属性或者方法,当然子类还可以提供自己的属性和方法 ...

  10. Java基础-OOP特性之封装、继承、多态、抽象

    为什么80%的码农都做不了架构师?>>>    //要习惯将程序(功能.代码)模块化 //OOP四大特性:封装.继承.多态.抽象 //OOP的核心:封装一个类,把数据抽象出来,再把方 ...

最新文章

  1. VMware静态地址上网
  2. 超越村后端开发(3:安装djangorestframework+序列化+API开发前期准备)
  3. 谷歌浏览器出现方格xp系统_win10系统谷歌浏览器扩展程序打不开的解决方案
  4. [No0000142]Outlook通过添加签名 自动添加邮件模板
  5. 一套完整的导视设计案例_色彩导视艺术:乌克兰基辅语言学校导视设计案例
  6. 云服务器如何链接本地打印机_利用FileZilla搭建云服务器FTP服务端和本地客户端...
  7. 阿里巴巴香港上市审批获准 11月25日上市交易
  8. VS2008异常捕获不到的问题
  9. oracle数据库SQL防止超长,SQL Server和Oracle防止数据锁定的比较
  10. 全网首发:freeswitch无法正常绑定端口5060的解决办法
  11. VI SNMPRRDTool
  12. FastJSON 简介及其Map/JSON/String 互转
  13. linux挂载,格式化
  14. 小程序中实现用户的登录与注册
  15. Java面试题汇总大杂汇
  16. 北京峰会系列二|基于SPDK的UDisk全栈优化
  17. DNSPod十问王安:中小企业的数字化是伪命题吗?
  18. 【Redis】主从复制
  19. 视频直播APP源码开发iOS音频播放流程
  20. php文字链接下划线怎么取消,css怎么去掉超链接下划线

热门文章

  1. 用Node-Inspector调试NodeJs程序
  2. ArcGIS线转面的方法
  3. ICCV2021 |优胜劣汰,MIT团队提出自适应多模态选取框架用于视频理解
  4. CVPR2021 用更好的目标检测器提取视觉特征!微软提出VinVL,基于更好的视觉特征,达到更强的多模态性能...
  5. 开年福利!OpenMMLab 全新企划,等你来
  6. 滴滴图像技术团队招聘计算机视觉工程师和专家
  7. 双十一囤点知识干货!
  8. 香港中文大学MMLab期待优秀同学加入~
  9. 机器学习硕士、博士如何自救?
  10. 谷歌提出“数据回波”榨干GPU空闲时间,训练速度提升3倍多