能力缺口:写得出类,却管不住对象关系

这门课解决的问题是:你已经能用 C# 写顺序执行的代码,但一碰到要抽象实体、设计继承层级、处理多态调用,脑子里就一团乱。很多转岗或自学者能熟练拖控件、写 if-else,却把“面向对象”当成背概念,写出来的类要么全是 public 字段毫无封装,要么继承链乱套,子类构造函数调不通,虚函数和普通重写分不清。如果你写代码时还在把所有逻辑塞进 Main 函数,或者一用接口就报错,说明缺的就是这块基础实战。它适合已经掌握 C# 基本语法(变量、循环、方法)但没真正写过对象模型的人,不适合连语法都看不懂的纯小白。

建议先看哪几块,资料怎么配合练习

别从头到尾顺看。建议先啃三块:类的封装和属性、构造函数与重载、多态里的虚函数重写。封装那节直接动手把现有代码里的 public 字段改成属性,体会 get/set 控制访问的实际效果;构造函数那节重点练继承场景下子类怎么调基类构造,这块是新手最容易卡住的地方;多态那节必须自己写一个小例子,区分 new 隐藏和 override 重写的区别,光看不动手根本记不住。资料里的示例代码不要直接运行看结果就完事,每节课讲完一个概念,自己新建项目敲一遍,改参数、断点调试看调用链。抽象类和接口那两节看完后,尝试把同一个需求分别用抽象类和接口实现,对比差异。集合部分相对独立,可以放最后看。

学完能独立做什么

学完之后,你应该能独立完成这几件事:拿到一个简单业务需求(比如员工管理、商品分类),能自己划分出类、设计属性和方法,而不是全堆在一个类里;能正确写出父子类的构造函数调用关系,不会编译报错抓瞎;能在该用多态的地方用虚函数重写,而不是用一堆 if-else 判断类型去调不同方法;能看懂别人代码里的抽象类和接口设计意图,不至于读源码时卡在接口定义上。看完后问自己三个问题:子类构造函数执行时,基类构造函数先跑还是后跑?虚函数重写和 new 隐藏在运行时表现有什么区别?什么时候该用抽象类、什么时候该用接口?答不上来就回去重练。

课程目录

1-1 [C#面向对象基础实战篇] 第一讲 面向过程编程和面向对象的编程 (17:30)
1-2 [C#面向对象基础实战篇] 第二讲 类的封装和属性封装 (09:47)
1-3 [C#面向对象基础实战篇] 第三讲 类的继承 (08:50)
1-4 [C#面向对象基础实战篇] 第四讲 类的继承2 (08:09)
1-5 [C#面向对象基础实战篇] 第五讲 构造函数和重载函数 (15:27)
1-6 [C#面向对象基础实战篇] 第六讲 类的继承-构造函数的使用 (09:28)
1-7 [C#面向对象基础实战篇] 第七讲 多态-new隐藏函数和虚函数重写 (10:42)
1-8 [C#面向对象基础实战篇] 第八讲 抽象类和抽象函数 (09:44)
1-9 [C#面向对象基础实战篇] 第九讲 接口的介绍 (11:15)
1-10 [C#面向对象基础实战篇] 第十讲 集合-ArrayList (12:10)
1-11 [C#面向对象基础实战篇] 第十一讲 集合-ArrayList排序 (12:37)
1-12 [C#面向对象基础实战篇] 第十二讲 集合-HashTable (07:39)
1-13 [C#面向对象基础实战篇] 第十三讲 集合-List泛型集合 (09:19)
1-14 [C#面向对象基础实战篇] 第十四讲 集合-Dictionary (06:53)