Programming C#.Inheritance and Polymorphism
继承
C#中,创建派生类要在派生类的名字后面加上冒号,后面再跟上基类的名字:
public class ListBox : Control
提示:C++程序员注意了,C#没有私有或者保护继承
多态
继承又两个功能强大的方面。其一是代码重用,创建ListBox类时,可以重用基类Control中的某些逻辑。另一方面就是多态性。
举一个多态的例子:
当电话公司向某个电话发送一个响铃信号时,它并不知道电话线另一头是什么类型的电话。也许是老式的手摇电话,要自己生电响铃,也许是可以演奏数字音乐的电子电话。
电话公司只知道“基类型”Phone,它希望这种类型的任何“实例”都知道如何响铃。当电话公司让电话响铃时,它只要求电话“正确响铃”。电话公司对电话的这种方式就是多态性的体现。
要创建支持多态性的方法,只需在其基类中将其标记为virtual。然后每个派生类均可自由地实现自己版本的方法。所以,在派生类方法定义中用关键字override覆盖基类的虚方法,然后在已覆盖方法中添加新的代码。
Programming C#.Inheritance and Polymorphism的更多相关文章
- Encapsulation、Inheritance、Polymorphism
public class SoldierDemo { public static void main(String[] args) { /*Soldier test1=new Army("张 ...
- Polymorphism (C# Programming Guide)
https://msdn.microsoft.com/en-us/library/ms173152.aspx Polymorphism is often referred to as the thir ...
- Java Programming Guidelines
This appendix contains suggestions to help guide you in performing low-level program design and in w ...
- Interfaces (C# Programming Guide)
https://msdn.microsoft.com/en-us/library/ms173156.aspx An interface contains definitions for a group ...
- Think Python - Chapter 18 - Inheritance
In this chapter I present classes to represent playing cards, decks of cards, and poker hands.If you ...
- Versioning with the Override and New Keywords (C# Programming Guide)
The C# language is designed so that versioning between base and derived classes in different librari ...
- 常用IT类英文词汇 - 1
作为IT学生以及将来打算从事IT行业的人, 我们在开发时少不了要去阅读英文文档, 在面试及工作中也会涉及到相关的英文词汇, 因此具备一定的英语水准是必须的. 这里我就把我在学习中所遇到的英文词汇记录下 ...
- Three Sources of a Solid Object-Oriented Design
pingback :http://java.sys-con.com/node/84633?page=0,1 Object-oriented design is like an alloy consis ...
- OOAD与UML笔记
UML基础介绍 1.UML的定义 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 2.OOAD OO ...
随机推荐
- Server(Iocp)的那些烦恼
自G-Socket0.88版开源以来,得到很多朋友的支持.从1.0版本至2.0之前,内核几乎没有改变,经过多处的应用其稳定性和效率表现是相当不错的.这几年的经验总结成一句话:服务器程序不是有了一个好的 ...
- animate CSS动画程序接口(仅Chrome可用)
jQuery中很早就提供了animate方法,使用它可以很方便地实现一些简单动画效果.后来CSS3中也提供了animation用于动画效果制作,但CSS本身的可操作性太差,所以用起来并不方便.现在最新 ...
- 纯CSS3编写的面包屑导航收集
整理了10个纯CSS3制作的面包屑导航,这些都是通过CSS3来编写,十分方便,而且实用.有些文章附有教程,大家可以研究学习一下. 漂亮面包屑导航 查看网站 扁平化面包屑导航 查看网站 圆形风格面包屑导 ...
- asp.net 获取IP地理位置的几个主要接口
腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup ...
- Foundation 框架
1.框架是有许多类,函数,方法,文档按照一定的逻辑组织起来的集合 2. Foundation框架是所有框架的基础 3.术语cocoa指的是foundation框架和appication kit框架 4 ...
- 实现Jquery触发一事件后,停留5秒,再接着触发下面的事件
这里是一个广告位的Jquery的代码,有两个不同的广告位,一个是中间浮动显示的,显示5秒后自动消失,并限定每天仅出现一次(Cookie实现): //=====================广告位的j ...
- juce中的内存泄漏检测
非常值得借鉴的做法,基于引用计数和局部静态变量,代码比较简单不加详解. //============================================================== ...
- mysql的高级用法
1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...
- struts2中的方法过滤拦截器
方法过滤拦截器是只过滤指定的方法,如果使用针对action 的普通的过滤器则会过滤该action内部 所有方法.如果在一个action中同时有多个作为业务逻辑控制的方法存在 的话则会过滤所有的业务逻辑 ...
- $.Event 你不知道的用法
最近在使用Bootstrap.js,一不小心趴开源码看了一下,尤其是看到tab.js var hideEvent = $.Event('hide.bs.tab', { relatedTarget: $ ...