上次看的都是OOP之前的东西,这次看到了OOP,感觉和C++的思路还是很不同的,不过和Java似乎有点像。
类的生命周期: 构造析构什么的和C++一模一样,唯一不同的是不需要自己释放内存了(这种自己new却让别人delete的感觉让我很心虚啊...)
interface: 这个我个人理解就是C++的纯虚类, interface的意思是定义接口但不去实现,class可以继承这个interface但必须实现这个接口里面的函数(或者抛出一个未实现的异常)这一点和C++的纯虚类不同,C++中继承一个纯虚类可以不全部实现其中的纯虚函数,但是代价是不能实例化这个对象。但是C#中干脆就没法通过编译。
class: internal(默认)/public abstract/sealed/(none) class ClassName{ ... } 对比C++令我感到轻松的是类定义不需要最后的分号了!(虽然C++的IDE也会自动补齐最后的分号) internal是默认的访问控制状态, public可以由其他项目访问(大概类似于Java的jar包...?) 接下来是类属性描述字,可以设定为abstract(抽象的),即不能实例化只能继承。看到这我在想那abstract class和interface是不是也没什么区别了,后来百度了一下发现还是有点区别的。首先interface不能有private成员,而作为class是可以有private和protected的。其次interface只能定义接口而abstract除了定义还可以实现一部分(如果愿意的话)。于是我又在想既然abstract class这么强大为什么还需要interface呢,原因还是有很多的(就像 C++里面虚函数那么强大为什么不把所有函数定义成虚函数呢,因