在面向对象当中继承是非常重要的,也是面向对象的三大特性之一(继承、封装、多态),今天我们来揭开他的神秘面纱。

话不多说,我们上菜。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; /**
* 假设我们公司有两种程序员:
* java程序员指的是用java语法写程序的程序员,用Jpro这个类表示;
* C#程序员指的是用C#语法写程序的程序员,用Cpro这个类来表示。
* 每个类都有一个WriteCode()方法。
* 都属于程序员,用Programmer这个类表示。
* 现在公司来了一个项目,要求派某个程序员写一个程序。
*/
namespace inheritApplication
{
//程序员类(基类)
class Programmer
{
public string name = "我是程序员";
}
//java程序员类
class Jpro
{
public string name = "java程序员";
public string language = "我用java语法写代码";
}
//C程序员类
class Cpro
{
public string name = "C#程序员";
public string language = "我用C#语法写代码";
}
//编写项目类
class Pro : Programmer //继承基类
{
public void WriteProgram(Jpro program) //继承java程序员类
{
Console.WriteLine("" + program.name + ":" + name + "," + program.language + "");
}
public void WriteProgram(Cpro program)
{
Console.WriteLine("" + program.name + ":" + name + "," + program.language + "");
}
}
//主程序
class Program
{
static void Main(string[] args)
{
Pro p = new Pro();
Jpro p1 = new Jpro();
p.WriteProgram(p1);
Cpro p2 = new Cpro();
p.WriteProgram(p2);
Console.ReadKey();
}
}
}

写好代码后我们运行看看效果!

很显然看出来,公司两个程序员都继承了程序员类。

总结:

父类包含了多少内容,派生类(子类)全部接受(包括属性 字段 方法等),

可以重写覆盖,使用override重写,可以使用base调用父类中的内容。

继承可以减少代码的冗余,也为程序的修改提供了很大的方便之处。

当然,如果结合接口那就完美了,下一篇中我们将提到接口的实现。

C#简单继承示例详解——快速入门的更多相关文章

  1. C#简单接口和继承示例详解——快速入门

    上一篇中我们说到继承,其实他们之间是差不多的. 接口是方法的抽象,如果不同的类有同样的方法,那么就应该考虑使用接口. C#中接口可以多继承,接口之间可以相互继承和多继承.一个类可以同时继承一个类和多个 ...

  2. Spring Boot 2.x 快速入门(下)HelloWorld示例详解

    上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...

  3. ggplot2作图详解:入门函数qplot

    ggplot2作图详解:入门函数qplot   ggplot2的功能不用我们做广告,因为它的作者Hadley Wickham就说ggplot2是一个强大的作图工具,它可以让你不受现有图形类型的限制,创 ...

  4. java继承基础详解

    java继承基础详解 继承是一种由已存在的类型创建一个或多个子类的机制,即在现有类的基础上构建子类. 在java中使用关键字extends表示继承关系. 基本语法结构: 访问控制符 class 子类名 ...

  5. 史上最易懂——ReactNative分组列表SectionList使用详情及示例详解

    React Native系列 <逻辑性最强的React Native环境搭建与调试> <ReactNative开发工具有这一篇足矣> <解决React Native un ...

  6. socket编程的同步、异步与阻塞、非阻塞示例详解

     socket编程的同步.异步与阻塞.非阻塞示例详解之一  分类: 架构设计与优化 简介图 1. 基本 Linux I/O 模型的简单矩阵 每个 I/O 模型都有自己的使用模式,它们对于特定的应用程序 ...

  7. String.format()【示例详解】

    String.format()[示例详解] 整理者:Vashon 前言: String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.fo ...

  8. css样式继承规则详解

    css样式继承规则详解 一.总结 一句话总结:继承而发生样式冲突时,最近祖先获胜(最近原则). 1.继承中哪些样式不会被继承? 多数边框类属性,比如象Padding(补白),Margin(边界),背景 ...

  9. SpringBoot与PageHelper的整合示例详解

    SpringBoot与PageHelper的整合示例详解 1.PageHelper简介 PageHelper官网地址: https://pagehelper.github.io/ 摘要: com.gi ...

随机推荐

  1. Python 处理时间的模块

    1.由日期格式转化为字符串格式的函数为: datetime.datetime.strftime().date() 2.由字符串格式转化为日期格式的函数为: datetime.datetime.strp ...

  2. 非正则表达式检验邮箱格式是否合法(Java代码实现)

    一.邮箱格式需满足以下要求 1. 有且只有一个@                        2. @不能放在开头,也不能放在结尾                        3. @之后必须有. ...

  3. 字典的.get方法

    字典的.get方法表示是dict.get(key,default)用于判断建是否存在,存在返回键对应的值,不存在返回指定的default值 dict = {'a':1,'b':2} dict.get( ...

  4. juniper srx 配置

    天涯海角- juniper为人所熟悉的一定是从netscreen开始的,作为一线防火墙品牌,还是有很高的地位.但是以前玩netscreen,都是用的网页版去配置,而且网页版做得很不错.但是现在nets ...

  5. Spring Boot使用RestTemplate消费REST服务的几个问题记录

    我们可以通过Spring Boot快速开发REST接口,同时也可能需要在实现接口的过程中,通过Spring Boot调用内外部REST接口完成业务逻辑. 在Spring Boot中,调用REST Ap ...

  6. OpenStack架构详解

    OpenStack提供开放源码软件,建立公共和私有云. OpenStack是一个社区和一个项目,以及开放源码软件,以帮助企业运行的虚拟计算或者存储云. OpenStackd开源项目由社区维护,包括Op ...

  7. 解决MyEclipse注册失败的问题

    https://jingyan.baidu.com/article/acf728fd49519ff8e410a361.html

  8. ubuntu旧版本源失效的处理方法

    (1)先备份 cp /etc/apt/sources.list /etc/apt/sources.list_backup (2)更换源 在ubuntu的网站中,提供了一个源供那些不再提供支持的版本使用 ...

  9. poj-3522 最小生成树

    Description Given an undirected weighted graph G, you should find one of spanning trees specified as ...

  10. BZOJ_3573_[Hnoi2014]米特运输_树形DP+hash

    BZOJ_3573_[Hnoi2014]米特运输_树形DP+hash 题意: 给你一棵树每个点有一个权值,要求修改最少的权值,使得每个节点的权值等于其儿子的权值和且儿子的权值都相等. 分析: 首先我们 ...