C#中面向对象编程机制之继承学习笔记
作者:junjie 发布时间:2023-12-12 03:46:43
标签:C#,面向对象,继承
继承反应了类和类之间的关系。
世界上很多事物都是有共性的,共性的那一部分我们就抽象为基类,用于派生其它类,这样提高了代码的复用性,使得代码的结构清晰易读,而且易于代码的扩展和维护。
C#的继承只能继承自一个基类,这一点不同于C++的继承。
C#的继承具有传递性,即B继承自A,C继承自B,则C具有A的所有特性。
C#的继承隐式为public的。
假如不在派生类构造器中显示调用一个基类构造器,编译器会自动插入对基类的默认构造器的一个调用,然后才会执行派生类构造器中的代码, 如果基类没有默认的构造器,会造成编译错误。
举例:动物的共性:有嘴巴,有眼睛,有鼻子,可以移动,能够吃东西
所以定义基类 (包含动物的共性)
public class Animal {
......
}
再定义具体的动物的时候就可以继承自基类Animal,不用再重新定义这些基本的特征,只定义自己独有的特性就好。
例如:Dog
public class Dog:Animal
{
//编译器会自动插入对基类的默认构造器的一个调用,然后才会执行派生类构造器中的代码
public string Bark;//狗叫声
}
public class Dog : Animal {
//在派生类构造器中显示调用一个基类构造器
public Dog()
: base() {
}
public string Bark;
}
注意:
可以把一个派生类的值赋给基类,但不能把一个基类的值赋给派生类,因为基类不能转换为派生类,基类中只包含了派生类的一部分特性。
Animal animal=new Dog(); 正确的
Dog dog=new Animal();错误


猜你喜欢
- 1. 继承1. 子类继承了父类,获得父类的全部Field和方法。子类Student类继承父类,将可以获得父类的全部Field和方法publi
- 实例如下所示:/** * 文件下载 * @param filePath 文件路径 * @param
- 前面的文章介绍了如何进行权限控制,即访问控制器或者方法的时候,要求当前用户必须具备特定的权限,但是如何在程序中进行权限的分配呢?下面就介绍下
- 前言当用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用
- 线程同步的概念由于同一个进程的多个线程共享同一块存储空间,在带来方便的同时,也会带来访问冲突的问题:举例:public class Runn
- 什么是数组数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每
- switch语句的格式如下:(它的功能是选出一段代码执行) switch(整数选择因子) { case 整数值1 : 语句; break;
- C# Path类—文件路径给定如下字符串类型filePath,表示一个文件路径:string filePath = &q
- 最近开发项目中,有个在屏幕上任意拖动的悬浮窗功能,其实就是利用 WindowManager的api来完成这个需求,具体的实现的功能如下:1.
- 1>方法一之前在配置 Maven 的 settings.xml 时,都会设置 mirror 节点,例如:<mirrors>
- 文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能。Qt
- 下载及启动Nacos 下载地址:https://github.com/alibaba/nacos/releases在Windows下,进入b
- 本文实例讲述了C++判断pe文件的方法。分享给大家供大家参考。具体实现方法如下:#include <afxdlgs.h>是为了使
- 前言Android底层服务,即运行在 linux 下的进程,是 Android 系统运行的基础,完成 Android 或者说计算机最基本的功
- 在Linux中创建一个新进程的唯一方法是使用fork()函数。fork()函数是Linux中一个非常重要的函数,和以往遇到的函数有一些区别,
- 这篇文章主要介绍了Java List集合排序实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 快速回顾1.Lambda表达式: (参数) -> {主体}Lambda表达式打开了函数式编程爱好者继续使用Java的大门。Lambda
- 1、背景说明公司收费系统需要与银行做实时代收对接,业务协议使用我们收费系统的标准。但是银行要求在业务协议的基础上,使用银行的加密规则。采用M
- 前言2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:就像鲸鱼吃虾米一样,也许
- 在Java中对集合进行操作时,有时候需要对类中的equals() 和 hashCode()进行方法重写.IDEA中实现了利用快捷键即可对上述