C# 学习笔记-001-继承

这篇具有很好参考价值的文章主要介绍了C# 学习笔记-001-继承。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,继承类型

        继承的类型:实现继承和接口继承

         实现继承:

                       表示一个类型派生于一个基类型,拥有改类型的所有成员字段和函数。

         接口继承:

                        表示一个类型只继承了函数函数签名,没有继承任何实现代码。

2,继承实现

3,访问修饰符

        虚方法:

                        使用 virtual 修饰符。虚方法可以被重写,重写使用override重写虚方法。

        隐藏方法:

                        如果签名相同的方法在派生类和基类都有声明,但该方法没有分别声明为virtual和override,派生类方法就会隐藏基类方法。

        调用函数的基类版本:

                        从派生类中调用方法的基础版本:base<MethodName>()。可以使用base<MethodName>()语法调用基类中的任何方法,不必从同一个方法的重载中调用。

       抽象类和抽象函数:

                        abstract修饰符把类和函数声明为抽象类型。抽象类不能实例化,抽象函数不能直接实现,必须在非抽象来的派生类中重写。

        密封类和密封函数:

                        scaled修饰符把类和方法声明为密封类型。密封的类不能被继承,方法不能被重写。

          修饰符:

修饰符 应用于 说明
public 所有类型或者成员 任何代码均可访问该项
protrected 类型和内嵌类型的所有成员 只能派生的类型能访问该项
interral 所有类型或者成员 只能在它包含的程序集中访问该项
private 类型和内嵌类型的所有成员 只能在它包含的程序集中访问该项
protected interral 类型和内嵌类型的所有成员 只能在它包含的程序集和派生类型的任何代码中访问该项

        其他修饰符:

修饰符 应用于 说明
new 函数成员 成员用相同的签名隐藏继承的成员
static 所有成员 成员不作用于类的具体实例
virtual 仅函数成员 成员可以由派生类重写
abstract 仅函数成员 虚拟成员定义了成员签名,但没有提供实现代码
override 仅函数成员 成员重写了继承的虚拟或抽象成员

4,接口

                        声明接口和声明抽象类型完全相同,声明接口使用修饰符 interface。接口不允许提供接口中任何成员的实现方式。

                        接口只能包含:方法,属性,索引器,事件。

                        接口不能实例化,只能包含其成员的签名。接口不能有构造函数,也不能有字段。接口定义也不允许包含运算符重载。

                        接口可以彼此继承,继承方法和类的继承方式相同。文章来源地址https://www.toymoban.com/news/detail-808757.html

到了这里,关于C# 学习笔记-001-继承的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go Ethereum源码学习笔记 001 Geth Start

    首先读者需要具备Go语言基础,至少要通关菜鸟教程,知道Go语言的基本语法,这些基础教程网络上非常多,请大家自行学习。 具备语言基础了,还需要在开始这一章之前做一些准备工作: 安装Go SDK,即Go语言的开发环境; 安装GoLand,即Go语言的IDE,当然也可以选择VSCode等其

    2024年02月14日
    浏览(45)
  • 【学习笔记】C#基础 - 由C/C++衍生出来的面向对象的编程语言

    1、基本语法 2、类的命名 必须以 A-Z / _ / @ 开头,不能是数字,之后可以跟 A-Z 、 0-9 、 _ 、 @ 不能包含任何空格或特殊符号,比如 ?-+!#%^*()[]{}.;:\\\"\\\'/ 不能与同名(除非添加 @ 前缀,@不作为标识符本身的一部分),不能与类库同名 必须区分大小写(PascalCase命名法) 3、关

    2024年02月07日
    浏览(54)
  • 【鸿蒙系统学习笔记】ArkTS开发语言

    ArkTS 是 HarmonyOS 优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。 ArkTS的基本组成,资料来自官网:文档中心 说明: ①装饰器:用来装饰类结构、方法、变量 @Component表示自定义组件,@Entry表示该

    2024年02月20日
    浏览(40)
  • 【鸿蒙系统学习笔记】TypeScript开发语言

    HarmonyOS 应用的主要开发语言是 ArkTS,它由 TypeScript(简称TS)扩展而来,在继承TypeScript语法的基础上进行了一系列优化,使开发者能够以更简洁、更自然的方式开发应用。值得注意的是,TypeScript 本身也是由另一门语言 JavaScript 扩展而来。因此三者的关系如下图所示 2.1.1、线

    2024年02月19日
    浏览(42)
  • 继承(个人学习笔记黑马学习)

    继承方式一共有三种: 公共继承 保护继承 私有继承 菱形继承概念 : 两个派生类继承同一个基类 又有某个类同时继承者两个派生类 这种继承被称为菱形继承,或者钻石继承

    2024年02月09日
    浏览(43)
  • python学习笔记:继承与超类

    与java类似,继承的出现是为了提高代码的重复利用率,避免多次输入同样的代码。而超类就是java中的父类。 要指定超类,可在定义类时,在class语句中的类名后加上超类名 基类就是超类,派生类就是子类 格式 子类会 重新定义重写超类方法init 继承超类的方法,无需再次编

    2024年02月13日
    浏览(31)
  • python学习笔记:第八章继承与超类

    与java类似,继承的出现是为了提高代码的重复利用率,避免多次输入同样的代码。而超类就是java中的父类。 要指定超类,可在定义类时,在class语句中的类名后加上超类名 基类就是超类,派生类就是子类 格式 子类会 重新定义重写超类方法init 继承超类的方法,无需再次编

    2024年02月15日
    浏览(40)
  • 【Lua学习笔记】Lua进阶——Table(4)继承,封装,多态

    现在我们可以像面向对象一样,new一个对应基类的对象了。但是这里的new也不完全相似与面向对象的new,例如我们可以这样做: 我们在封装Object类的时候可完全没有name这个索引,而在Lua中我们new了一个新对象,还能新加入一些变量和方法,这些特性明显是继承了父类的子类才

    2024年02月15日
    浏览(48)
  • 人工智能基础_机器学习001_线性回归_多元线性回归_最优解_基本概念_有监督机器学习_jupyter notebook---人工智能工作笔记0040

       线性和回归,就是自然规律,比如人类是身高趋于某个值的概率最大,回归就是通过数学方法找到事物的规律. 机器学习作用: 该专业实际应用于机器视觉、指纹识别、人脸识别、视网膜识别、虹膜识别、掌纹识别、专家系统、自动规划、智能搜索、定理证明、博弈、自动程序

    2024年02月06日
    浏览(52)
  • C/C++|物联网开发入门+项目实战|指针|嵌入式C语言高级|C语言内存空间的使用-学习笔记(9)

    参考: 麦子学院-嵌入式C语言高级-内存空间 内存类型资源地址、门牌号的代名词 指针:地址的代名词 指针变量:存放指针这个概念的盒子 *P char *p *p; C语言娟译器对指针这个特殊的概念,有2个疑问? 1、分配一个盒子,盒子要多大? 在32bit系统中,指针就4个字节 2、盘子里存放

    2023年04月22日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包