昨天晚上的理论课程对前段时间学习C#语言和面向对象编程的知识进行了归纳,同学们也整理了一下该阶段遇到的不解问题,简单列表如下:
【未解决的问题】
- 构造函数和方法的区别
- 构造函数可不可以被继承?
- 静态方法(static)和非静态方法的区别
- 抽象类和接口的区别
- 什么是数组
- 什么是异常
简单解答一下同学们的问题:
- 构造函数是种特殊的方法,它是在创建给定类型的对象时执行的类方法。它特殊在:
- 构造函数具有与类相同的名称
- 构造函数没有返回类型(也不包括void)
- 构造函数永远是类实例化过程中第一个被执行的方法(注意:是“方法”,不是“成员”)
- 构造函数可以被继承,但是被继承的是缺省构造函数,即无参数的那个构造函数。建议不要在基类写太多的有参数构造函数,因为所有的派生类都将继承基类的非私有方法,这样会破坏类间层次结构。另外,实现接口要优于继承。
- 静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。更多内容请见SDK内《静态类和静态成员》一章
- 简单归纳接口和继承的区别,更多的内容推荐看《Effective C# -- 50 specific ways to improve your c#》中《明辨接口实现和虚方法重写》一章
- 抽象类是一个不能实例化的类,需要进一步派生.接口只是一个不包括实现的方法约定
- 接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法
- 一个类一次可以实现若干个接口,但是只能继承一个基类
- 接口可以用于支持回调,而继承并不具备这个特点.
- 数组 -- 请查阅SDK
- 异常 --请查阅SDK
我抬头仰望,星星给予仰望者光芒……