在C#中,如果一个类后面通过冒号又跟了另外一个类,那么我们就称冒号前面的类为子类,冒号后面的类为父类。这种书写类的方式放映出来的关系就称为类的继承关系。

  1、子类:派生类

  父类:基类或者超类

满足is a关系的两个类可以使用继承。

  例如:

  经理is a a 员工

  程序员  is a 员工

  学生 is  a Person

  继承的优点:减少代码冗余,实现代码复用

  继承关系在类图中表示为一个箭头,箭头指向的是父类。

  子类可以继承父类的非私有成员   一个子类只能有一个直接父类   子类构造默认会调用父类的无参构造

base关键字   解析:

  父类的实例   看成是调用父类的构造,只出现在子类构造后面

  base(参数列表)父类带参构造的参数列表一致   相当于方法调用,不带有数据类型

  访问修饰符   Public:任何位置都能访问(方法,成员变量,类)   Private:只能当前类自身访问,出了类所在{}无法访问(方法,成员变量)   Protected:当前类和子类能访问及子类的子类(孙子                    类)(方法以及变量)   Internal:只能在当前程序集中使用

  传递性:   如果一个类B继承自类A,而类C又继承类B,那么类C也可以访问到类A中非私有成员

  单根性(C#不支持多继承 Java也不支持多继承)

  实现多态   概念:

    不同的对象对于同一个操作,做出的响应不同,那么这种情况在面向对象编程中就称为多态。

  使用多态的目的:

    使用多态就是为了统一调用。

  实现多态的方式:

    通过虚方法:

    实现多态的步骤:

    01.在父类中通过virtual关键字定义一个虚方法

    02.在子类中通过override关键字对父类中的虚方法进行重写

    03.调用的时候,调用的是子类的方法

Chinese chinese = new Chinese();

            American american = new American();

            Korea korea = new Korea();

            Person[] p =
{
chinese,american,korea };
//遍历集合中的元素,调用对应子类中的Hello方法
foreach (Person item in p)
{
item.Hello();
}
Console.ReadLine()

S2:c#继承的更多相关文章

  1. Day7-面向对象

    面向对象编程定义 OOP编程是利用"类"和"对象"来创建各种模型来实现对真实世界的描述,使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得更简单,并 ...

  2. [TimLinux] JavaScript 面向对象程序设计

    1. 面向对象 面向对象语言有一个标志:都有类的概念.通过类可以创建任意多个具有相同属性和方法的对象.ECMAScript中没有类的概念,因此JavaScript中的对象夜雨基于类的语言中的面向对象有 ...

  3. 传智播客C++视频学习笔记(3)

    #include<iostream> using namespace std; //内存分区模型 //代码区,存放二进制代码,由操作系统进行管理 //全局区,存放全局变量.静态变量.常量( ...

  4. s2第六章继承和多态

    public class Employee { //年龄 public int Age { get; set; } //性别 public Gender Gender { get; set; } // ...

  5. hibernate笔记--继承映射关系的三种实现方式

    单表继承映射(一张表): 假设我们现在有三个类,关系如下: Person类有两个子类Student和Teacher,并且子类都具有自己独有的属性.这种实体关系在hibernate中可以使用单表的继承映 ...

  6. 【一次面试】再谈javascript中的继承

    前言 面向对象编程是每次面试必问的知识点,而前端js如何实现继承每次命中率高达80% 这不,近两天我们面试时候,同事就问道面试者此问题,但是,不论之前自己做的回答,还是面试者的回答,基本都不太令人满意 ...

  7. C#类的继承,方法的重载和覆写

    在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:允许的实例化方式:Student t=new Student() ...

  8. day25、 静态属性、类方法、静态方法、组合、继承、

    一. 静态属性.类方法.静态方法 1.1静态属性 class Room: def __init__(self,name,owner,width,length): self.name=name self ...

  9. Lua面向对象----类、继承、多继承、单例的实现

    (本文转载)学习之用,侵权立删! 原文地址   http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&a ...

随机推荐

  1. ajax:error:function (XMLHttpRequest, textStatus, errorThrown) 中status、readyState和textStatus状态意义

    textStatus: "timeout", 超时 "error", 出错 "notmodified" , 未修改 "parser ...

  2. java获取Timestamp类型的当前系统时间

    java获取取得Timestamp类型的当前系统时间 java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new ...

  3. kubernetes实战篇之helm示例yaml文件文件详细介绍

    系列目录 前面完整示例里,我们主要讲解helm打包,部署,升级,回退等功能,关于这里面的文件只是简单介绍,这一节我们详细介绍一下这里面的文件,以方便我们参照创建自己的helm chart. Helm ...

  4. 跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh

    SpringCloud系列教程 | 第七篇:Spring Cloud Config 配置中心高可用和refresh Springboot: 2.1.6.RELEASE SpringCloud: Gre ...

  5. kettle —— 从 oracle 到 oracle的坑

    公司有个项目,是使用kettle从oracle上统计,再将结果跟oracle中目标表进行对比更新.接手后,走了一些弯路,中间各种尝试都不尽如人意,也学了kettle的一些组件的用法.正好趁着机会记录 ...

  6. scrapy实战1分布式爬取有缘网(6.22接口已挂):

    直接上代码: items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See docu ...

  7. Innovus Lab和Lab Guide下载地址 | Innovus教程 - Flow系列 - 数据准备

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <Innovus Lab和Lab Guide下载地址 |    Innovus教程 - Flow系列 - 数据准备>   ...

  8. 广告过滤器 Adguard Pre v6.4.1814 Lite V2 简约绿色版

    下载地址:点我 基本介绍 当你在浏览网页的时候总是弹出广告是不是非常的不爽,小编为伙伴们提供了Adguard Pre简约绿色版,一款专业的广告过滤器.Adguard Pre简约绿色版可以帮助伙伴们完美 ...

  9. web文件下载(附方案及源码配置)

    1. 场景描述 因项目需查询数据量比较大(需要查询Hbase等nosql数据库),采用用户点击查询后,后台查询并生成查询文件:然后消息通知用户后,用户点击下载的方式来满足用户需求. 2. 解决方案 W ...

  10. 【HDU - 1043】Eight(反向bfs+康托展开)

    Eight Descriptions: 简单介绍一下八数码问题:在一个3×3的九宫格上,填有1~8八个数字,空余一个位置,例如下图: 1 2 3 4 5 6 7 8   在上图中,由于右下角位置是空的 ...