继承

C#中,创建派生类要在派生类的名字后面加上冒号,后面再跟上基类的名字:

 public class ListBox : Control
提示:C++程序员注意了,C#没有私有或者保护继承

多态

继承又两个功能强大的方面。其一是代码重用,创建ListBox类时,可以重用基类Control中的某些逻辑。另一方面就是多态性。

举一个多态的例子:

当电话公司向某个电话发送一个响铃信号时,它并不知道电话线另一头是什么类型的电话。也许是老式的手摇电话,要自己生电响铃,也许是可以演奏数字音乐的电子电话。
电话公司只知道“基类型”Phone,它希望这种类型的任何“实例”都知道如何响铃。当电话公司让电话响铃时,它只要求电话“正确响铃”。电话公司对电话的这种方式就是多态性的体现。

要创建支持多态性的方法,只需在其基类中将其标记为virtual。然后每个派生类均可自由地实现自己版本的方法。所以,在派生类方法定义中用关键字override覆盖基类的虚方法,然后在已覆盖方法中添加新的代码。

Programming C#.Inheritance and Polymorphism的更多相关文章

  1. Encapsulation、Inheritance、Polymorphism

    public class SoldierDemo { public static void main(String[] args) { /*Soldier test1=new Army("张 ...

  2. Polymorphism (C# Programming Guide)

    https://msdn.microsoft.com/en-us/library/ms173152.aspx Polymorphism is often referred to as the thir ...

  3. Java Programming Guidelines

    This appendix contains suggestions to help guide you in performing low-level program design and in w ...

  4. Interfaces (C# Programming Guide)

    https://msdn.microsoft.com/en-us/library/ms173156.aspx An interface contains definitions for a group ...

  5. Think Python - Chapter 18 - Inheritance

    In this chapter I present classes to represent playing cards, decks of cards, and poker hands.If you ...

  6. 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 ...

  7. 常用IT类英文词汇 - 1

    作为IT学生以及将来打算从事IT行业的人, 我们在开发时少不了要去阅读英文文档, 在面试及工作中也会涉及到相关的英文词汇, 因此具备一定的英语水准是必须的. 这里我就把我在学习中所遇到的英文词汇记录下 ...

  8. 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 ...

  9. OOAD与UML笔记

         UML基础介绍 1.UML的定义 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 2.OOAD OO ...

随机推荐

  1. [Android]APK程序卸载二次确认的实现

    严正声明        本人本着技术开放,思想分享的目的,撰写本文.文章仅供参考之用,请勿使之于非法或有害于社会和谐之用. Sodino 2011-01-24 Android上能不能实现卸载时提示呢, ...

  2. UVA 1343 The Rotation Game

    题意: 给出图,往A-H方向旋转,使中间8个格子数字相同.要求旋转次数最少,操作序列字典序尽量小. 分析: 用一维数组存24个方格.二维数组代表每个方向对应的7个方格.IDA*剪枝是当8-8个方格中重 ...

  3. 【Android】Fragment如何获取子Fragment

    今天搞了个嵌套的Fragment,通过外部的Fragment获取的子Fragment代码: this.navigationBar = (HXKJCargoNavigationView) getFrag ...

  4. C/S ASP.NET页面传值汇总

    一. QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不 ...

  5. accordion

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 稠密图(邻接矩阵),并查集,最短路径(Dijkstra,spfa),最小生成树(kruskal,prim)

    全部函数通过杭电 1142,1162,1198,1213等题目测试. #include<iostream> #include<vector> #include<queue ...

  7. jchat:linux聊天程序2:MySQL

    该软件使用的数据库为MySQL,因为它免费.开源,在linux下几乎就是最好的选择. 首先要在mysql中root用户新建数据库并赋权给本用户: create database jchat; gran ...

  8. delete 指针

    #include<iostream>using namespace std;class human{public: human(){cout<<"构造";} ...

  9. [linux]segvcatch简单使用

    https://code.google.com/p/segvcatch/ This is a crossplatform C++ library designed to convert a hardw ...

  10. SQL Server 查看对象之间的引用关系

    前期准备: use studioA;           go create table T(X int,Y int); insert into T(X,Y) values(1,1),(2,2);  ...