C#学习笔记(二)

本文探讨了C#中的OOP特性,包括类的生命周期、interface、class的区别、struct与class的值类型差异以及方法的访问修饰符。对比C++,C#在内存管理、接口实现、类继承等方面展现出独特的设计。
摘要由CSDN通过智能技术生成

上次看的都是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++里面虚函数那么强大为什么不把所有函数定义成虚函数呢,因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值