C# 封装、继承、多态

本文详细介绍了C#中的封装、继承和多态概念。封装涉及数据隐藏、高内聚和低耦合,以及如何通过访问级别控制类的使用。继承允许代码复用和概念扩展,但可能带来耦合度高的问题。多态则体现在通过不同子类实现基类的同名方法。重写原理包括关键字abstract、virtual和override,而绑定分为静态绑定和动态绑定,分别对应方法隐藏和方法重写。在Unity中,这些概念有助于理解和实现游戏对象的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封装

1.数据角度:将多个基本数据或者自定义数据类型组合成一个自定义类型

                     通过类,结构体等实现。

2.方法(功能)角度:向调用者提供一个功能,隐藏实现细节。

                     通过一些访问级别(public,private,protected,internal)对类外提供方法。

3.设计角度:

                    a .高内聚:类的内部高度聚集,实现单一职责原则。

                    b.低耦合:类与类之间不要有联系,实现单一职责原则

                    c.单一职责:将每个类的职责划分清晰,分开声明,标准是封装变化点

                 

总结: 通过类封装数据(字段,属性,方法,构造方法,静态数据等)

            通过类的方法(一定的访问级别封装,提供一个方法)

            依据变化点设计每一个类(高内聚,低耦合,单一职责)

继承(extends,直译:扩展,延伸)

定义:重用基类的功能,在此基础上扩展。(功能上的扩展(继承),概念上的扩展(抽象))

优点:  复用代码、 统一概念    (以层次化的继承去管理类,单一继承原则)

缺点:耦合度高(父级改变无需通知子级别),切换不灵活。

使用场景: 1. is a 的关系,抽象和的具体的关系

                   2.概念上的扩展,想要一个东西去代表更多类型共性的时候用继承。

                   3.具有很多相同的代码

多态

定义:基类同一种动作或者行为(父类型的引用调用同一方法),在不同的子类上有不同的实现。

          继承将相关的概念共性进行抽象,并提供一种复用的方式;多态在共性的基础上,体现类型及行为的个性化,即一个行为有多个不同的实现。

实现方式:

1.抽象:抽象类的引用指向实现类的对象,调用抽象类的(abstract)方法,执行子类的重写(override)方法  

 2.虚方法: 基类引用指向派生类对象,调用虚(virtual)方法执行派生类的重写(override)方法.

 3.接口:接口(interface)的引用,指向实现类的对象,调用接口方法,执行实现类的重写方法。

4.提现几个类的共性用继承,提现各个类的特性用多态。

5.抽象方法,虚方法,接口方法,让子类区去重写方法。

重写原理:关键字:abstract virtual override

1.在子类方法表中添加新记录

2.修改父级方法表地址(覆盖父类方法)

3.调用父类(abstract,virtual)方法,执行子类(override)方法

注:(调用子类方法,执行子类方法)

方法隐藏:关键字:abstract virtual override new

1.在子类方法表中添加新记录(没有覆盖父类方法)

2.调用子类方法,执行子类(new)方法

注:(调用父类方法,执行父类方法)

绑定:类型与关联的方法的调用关系,一个类能调用那些方法。

静态绑定:指调用关系的编译期确定(运行之前)不占用运行时间,编译速度快.方法隐藏是静态绑定.

动态绑定:指调用关系在运行期确定(编译之后)占用运行时间,更加灵活.方法重写是动态绑定.

---------------------------------------------------------------------------------------------------------------------------------

在unity中子类附加到物体中,创建子类对象,相当于通过子类型引用调用父类脚本

方法隐藏,通过方法体内部的Base()关键字调用父类方法。

/*
    将yield以前的代码分配大MoveNext方法中,将return 后面 的数据分配到Current中
    调用MoveNext方法时执行,执行到yield暂时离开,再次调用moveNext方法继续执行。 
*/

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值