学习笔记:c# 从“过程”看“对象”----类及基础的实现

本文详细阐述了类的实现过程,包括定义结构体、函数及实例化步骤,并深入探讨了继承的原理与机制,包括覆盖和重写的概念及其区别。同时,通过实例解释了子类的实例化过程,以及如何在C#环境下应用这些概念。

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

类的实现过程

1.定义结构体(基类型字段为值类型,引用类型字段、方法为指针。注:属性的本质是字段与方法的结合体)。

2.定义函数(第一个参数为 结构体 类型,调用时由编译器自动填冲,后面才是函数的“实际”参数)。

类的实例化过程

1.分配内存空间 以及 初始化字段、属性。方法使用 new 关键字。

2.调用构造函数。当然,一般的,构造函数都是用来给字段、属性赋初值的。

 

继承的实现:

原理:在实现子类的结构体中定义一个结构体指针指向父类。

覆盖:覆盖父方法。c#实现是在子类中定义一个方法,与父类该方法声明相同,或者显示的加一个new 关键字。

这样实际上就是告诉编译器----调用“函数”时,如果第一个参数声明为父类(实际是是实例化的子类),那么就执行父类

的方法,反则子类方法。

重写c#实现是父类方法以 virtual 关键字声明,子类以override 关键字声明。这样的实际功能是告诉编译器,无论是

哪种情况,都直接使用第一个参数本身的方法。

 这儿不得不说一下,网上都将覆盖和重写理解为一个意思。就我来看,覆盖就好像徒弟跟着师傅学武功,同样一招

“泰山压顶”,可能师傅直接劈头盖脸直接一掌打下来,而徒弟一跃三千尺,然后头下脚上来使,虽还叫泰山压顶,却实

际上达到了如来神掌的功效了。这就是覆盖,徒弟有,这个徒弟的师傅也会,但不同;重写就好像父亲把传世美玉东西传给

儿子,儿子又把这美玉雕刻成精美饰品,那么,传家之宝,儿子有了,但这个儿子的父亲却没有了。(注:徒弟、儿子就

好比子类的一个实体,这个徒弟的师傅、这个儿子的父亲就好比以子类实例化的父类,泰山压顶、传世美玉就好比方法)

子类的实例化:

先完成父类的实例化,再做子类的实例化工作。注:最先完成的是Object类的实例化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值