Unity3D开发日志一:#5开发过程学到的C#基础知识

一、C#基础

关于接口、抽象类与虚方法

1.interface接口

        说白了,接口就是一种规范,是用来定义程序的协议,接口本身不实现任何功能,其包含的全是未实现的属性,方法或事件,都是需要派生类去实现的。相当于C++里的多继承

​​​​​interface接口视频讲解             ​​​​​​​​​​​​interface接口文章讲解

2.abstract抽象类

        用简单的话来说抽象类的功能就是:我是老子(抽象类),你要是跟了(继承)老子,你就必须得会干什么(实际实现) 
        举个场景就是:老子会打人,那你也必须会打人,但你是轻轻的打,还是狠狠的打,你自己决定,但你必须得会打人。

abstract抽象类文章讲解

        我们知道,接口可以包含方法的申明和属性,但是方法中不包含代码,实现这个接口的方法必须包含接口中的所有方法和属性,但是现在出现这种情况,假设需要一个“接口”,要求类实现某些方法和属性,但是需要这这个“接口”中包含一些代码,从而不必在每个派生类中重复地实现某些方法,对于这种情况,你需要的不是接口,而是一个抽象类(abstract class)。

3.抽象类和接口的区别 

        01.它们的派生类只能继承一个基类,即只能继承一个抽象类,但是可以继承多个接口。 
        02.抽象类中可以定义成员的实现,但接口中不可以。 
        03.抽象类中包含字段、构造函数、析构函数、静态成员或常量等,接口中不可以。 
        04.抽象类中的成员可以私有的(只要不是抽象的)、受保护的、内部的或受保护的内部成员,但接口中的成员必须是公共的。

4.virtual虚方法

        虚方法可以在不同的继承类中有不同的实现,即为基类中定义的允许在派生类中重写的方法。虚拟类其实指的是正常类中的虚拟方法,所以虚拟类可以直接使用实例,这是与抽象类不同的一点。其实虚拟函数和正常函数无区别

        当在基类中进行虚方法的定义以后,在派生类中可以对其方法进行调用,而且可以通过重写来改变其中实现的功能来实现自己的一些功能,而不是虚方法时,必须重新声明方法然后再进行自己想要的功能进行编写然后再进行调用,但是虚方法只需要在派生类中对其进行调用,如果想实现其他的功能可以对其进行方法等的重写,进而实现自己想要的功能,调用基类的虚方法来执行派生类的具体操作。

        而在基类调用时,并不需要知道派生类是怎么样实现的。因为不同的派生类可能实现的方式不一样。但调用的方式是一样的,实现了不同的功能。虚方法的作用有:

        1.允许 子类 / 派生类 进行重写;
        2.增加代码的可维护性,脉络较清淅有条理

virtual虚方法文章讲解

关于枚举

enum枚举视频讲解

        视频中讲解了enum的书写规范以及其用法,那么枚举究竟应该用在什么地方呢,在案例中,我们需要重复使用到“星期一”到“星期天”这些特定的字符串,我们就可以来定义一个叫做“星期”的枚举。如果不定义成枚举,各位的写法就千奇百怪了,比如“周一”、“星期一”、“Monday”等,这三个表示的是同一天。

        其实定义枚举的目的就是为了规范一些数据的值。

关于override和new

        override为重载,会覆盖基类的方法

        new为新建,不会覆盖基类的方法,相当于在派生类添加了同名的方法,而隐藏了基类的方法

new用法文章讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值