您当前的位置 :三板富> 国际 > 正文
C#知识梳理——方法(2)虚方法、重写方法、抽象方法(and接口)、扩展方法
2023-08-05 20:18:15 来源:哔哩哔哩 编辑:news2020

虚方法(and重写方法):

作用:因为在方法调用的时候会有对于这个方法的用法有需求,但是方法的条件不符合应用的需求。所以需要重写。也就是说多用于重写父类方法。换言之,就是子类和父类的具体实现方法不同的时候,需要进行对虚方法的重写。(允许子类或者派生类,进行重新,实现不一样的功能)


【资料图】

特点:1、关键词:virtual 2、子类和父类的返回值和参数也是一样的3、好维护(原生代码不需要进行更改)

关键点:重写与重载的不同是,重载重点在参数类型、个数、顺序不同的情况下,引用同一种方法来做不同的事情,本质上重载是同一个方法,只不过入口不同。而重写实就是不同的方法,但是入口的样子一样。 与后边的抽象方法、接口的对应的形象的解释。现在有一户人家已经有一个房子了,发现不够用,于是他们又建造了另一个相同外观的房子,以作他用,但是还是同样一户人家来用。

抽象方法:

用法:规范好让子类去实现。强制性一定要实现(因为有时候写多了会忘记写具体实现)。

特点:1、抽象方法一定要写在抽象类里 2、不能实例化 3、不带方法体

关键点:1、抽象方法,像是一种“规范”,用形象的话来说的话,就是给你一入口,规定一定要有一个门,门打开后,屋子内部是什么样的,屋子是怎么建的,都是由你(子类)来决定的,不过这个房子只有一个房间。重写的过程就是建这个房子的过程。

与接口的区别和使用:区别:1、抽象类——单继承(只能继承一个父类) 接口——可以多继承 所以,接口就像是他给了你一个房间号,你可以通过多个房间号进入到不同的房间里,但是进入房子的门还是那一个门。 重写的过程就是就是建立这个房子中不同房间的过程。2、抽象类里可以写其他方法,而接口里只能写规范。也就是说,抽象类是就是一个有烟证的超市,里可以卖烟(抽象方法),也可卖冰棍,卖生活用品(其他方法);而接口就是医院,里边的规范是病人,病人可以是大老板,也可是扫大街的(规范可以不同),但是病人就只是病人,现在有个食客(虚方法)想去医院里吃火锅

(具体实现),那这是不被允许的。

使用场合:抽象类一般用于常用不会经常改动、抽象范围大一点的事件。

扩展方法ExtendMethod:

定义:在不修改原生代码的情况下进行扩展(重要)

用法:在非泛型静态类中->定义静态方法->拓展方法

使用场合:1、调用密封类中的对象,属性或者方法进行拓展 2、扩展接口 3、再Linq链式编程 等等

关键:抽象方法和接口我都给出了形象的解释,以便于理解。那么扩展方法也需要来讲一讲。它们应当是不同角度的问题。抽象方法在抽象类里给出一个规范,便于子类进行对某一个类的继承后的重写;接口给出规范,便于子类对某一个或者多个接口中规范的在此子类中的创建。而扩展方法则不然,它在于对原生父类的扩展,取的是参数。前两者,一个是取入口门,一个是取房间门牌,门规定了谁可以进,进多少人,房间门牌规定了谁可以进哪个房间。但是它们的最终指向都只有一个地方,某个屋子或者某个房间。而扩展则不同,它是取来这样的信息:有多少人,这些人是谁,他们能做什么,而并不关心去这些人要去哪个房间。于是乎,扩展就可以决定这些人的动作,可以指定某些人去作某些动作(取参数,规定全新的方法的实现),可以指定某些人去做他们会的动作来达成一定的目的(取参数和方法,来获得新的方法的实现)。规定好以后,房子还是那所房子,但是我们已经可以按照这个房子的样子来建一所房子(实例化,其实更准确的描述,就是不管是抽象、接口都是用来确定图纸的,实例化后才是真正的把房子建造出来),或者说,按照图纸建造出这个房子,然后通过对这个房子的一些按钮进行操作(调用扩展的方法、属性等),来让某些人进某个房间或者去某个地方做某些事(输入参数,进行操作),而这些事情也许是房子最初设计中不存在的事情,就好比本身医院就是一个亿元,让病人看病的地方,现在我们可以规定某些病人可以在医院里蹦迪,因为我们在医院里制造了闪亮的灯球,而我们也允许病人在灯球下蹦迪。

方法梳理小结:上述方法的总结都是很简单的一些梳理 但是很有用 不过写的算是笔记,很简单 主要还是为了我自己今后可以看懂 也许这C#一系列真的做下去的话,可以录制教程发出来,一方面做个记录 再一方面后边再次进行复习

标签:

相关阅读
版权和免责申明

凡注有"三板富 | 专注于新三板的第一垂直服务平台"或电头为"三板富 | 专注于新三板的第一垂直服务平台"的稿件,均为三板富 | 专注于新三板的第一垂直服务平台独家版权所有,未经许可不得转载或镜像;授权转载必须注明来源为"三板富 | 专注于新三板的第一垂直服务平台",并保留"三板富 | 专注于新三板的第一垂直服务平台"的电头。

最新热点

精彩推送

 

Copyright © 1999-2020 www.3bf.cc All Rights Reserved 关于我们
三板富投资网  版权所有 沪ICP备2020036824号-16联系邮箱:562 66 29@qq.com