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 ...
随机推荐
- GCC 命令行具体解释
作者: www.linuxfans.org mozilla 1.gcc包括的c/c++编译器gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明确前面这半句是什么意 ...
- mongodb 学习笔记 04 -- 游标、索引
游标 var cursor = db.collectionName.find() 创建游标 cursor.hasNext() 是否有下一个元素 cursor.next() 取出下一个元素 比如 whi ...
- android 实现自己定义状态栏通知(Status Notification)
在android项目的开发中,有时为了实现和用户更好的交互,在通知栏这一小小的旮旯里,我们通常须要将内容丰富起来,这个时候我们就须要去实现自己定义的通知栏,比如以下360或者网易的样式: 首先我们要了 ...
- 跳跃表 C#
虽然avl树和红黑树在数据搜索和排序方面都是有效的数据结构,但是都显得特别麻烦,跳跃表就显得特别简单,虽然简单 不影响他性能,在平均情况下,其插入.删除.查找数据时间复杂度都是O ...
- DW 做一个table表 对单元格进行合并
编辑前的代码 <body> <table width="500" border="0" bgcolor='#000000' backgroun ...
- eclipse 使用maven 创建web3.1项目
最近刚刚开始学java, 在框架搭建的过程中, 遭遇了诸多的坑, 和各种各样的不解与困惑, 由于没有什么java的相关基础, 看到各种xml的配置文件, 当真是一个头两个大. 并且并不知道那个配置到底 ...
- zend guard loader
1 .是zendoptimizer的前身, 在php 5.3 (含)之前使用更新到6 ,5.4 之后不再使用.是代码优化的一种,7中opcache 类似功效. 2 .php版本的变量 phpversi ...
- switch函数——Gevent源码分析
在gevent的源码中,经常能看到switch函数.而不同的类中的switch函数有不同的用法 1. greenlet的switch函数 这里面的greenlet是greenlet库中的greenle ...
- 通过实例深入理解lec和yacc
本框架是一个lex/yacc完整的示例,包括详细的注释,用于学习lex/yacc程序基本的搭建方法,在linux/cygwin下敲入make就可以编译和执行.大部分框架已经搭好了,你只要稍加扩展就可以 ...
- C语言 —— 括号配对问题(不使用栈)
最近在南阳理工的OJ上刷题,看到一个有点意思的题目 网上的答案大多都使用了栈,可惜我还没有学习数据结构,所以只能用简单的方法来解决 题目的链接在这 http://acm.nyist.net/Judge ...