C#面向对象第四天总结

1. File类的三个读取方法的区别
ReadAllLines() ReadAllText()只能用来读取文本文件
当要读取的文件是图片文件,多媒体文件,音乐文件等,只能用ReadAllBytes()

2. 绝对路径和相对路径
绝对路径:通过给定的路径可以直接在电脑中找到需要的文件
相对路径:文件相对于应用程序的路径。在开发过程中,应该尽量使用相对路径

3. 装箱、拆箱
装箱:就是将值类型转换为引用类型
拆箱:将引用类型转换为值类型
看两种类型是否发生了装箱或者拆箱,要看这两种类型是否存在继承关系
我们的代码中应该避免出现装箱或拆箱,否则会影响程序运行时间

4. List<>
相比于ArrayList List<>不会发生拆箱 装箱

5. Dictionary<>
相比于Hashtable Dictionary<>不会发生拆箱 装箱

6. FileStream对于文件的读写是一部分一部分的完成
File类下的方法是一下子全读过来,所以只能处理小数据文件

将创建文件流对象的过程写在using当中,会自动的帮助我们释放流所占用的资源

7.
FileStream是操作字节的
StreamReader和StreamWriter是操作字符的,即用来操作文本的

8. 实现多态的手段(多态的最大意义就是屏蔽了不同子类之间的差异性)
1)虚方法
步骤:
将父类的方法标记为虚方法,使用关键字virtual,这个函数可以被子类重写,子类的重写函数在返回值前面加上override关键字

如果父类中的方法有默认的实现,并且父类需要被实例化,这时可以考虑将父类定义成一个普通类,用虚方法
如果父类中没有默认实现,父类也不需要被实例化,则可以将该类定义为抽象类

2)抽象类
当父类中的方法不知道如何去实现的时候,可以考虑将父类写成抽象类,将方法写成抽象方法
a. 抽象成员必须标记为abstract,并且不能有任何实现
b. 抽象成员必须在抽象类中
c. 抽象类不能被实例化
d. 子类继承抽象类后,必须把父类中的所有抽象成员都重写(除非子类也是抽象类)
e. 抽象成员的访问修饰符不能是private
f. 在抽象类中可以包含实例成员,并且抽象类中的实例成员可以不被子类实现
g. 抽象类是有构造函数的,虽然不能被实例化
h. 如果父类的抽象方法中有参数,那么,继承这个抽象类的子类在重写父类的方法的时候必须传入对应的参数
   如果抽象父类的抽象方法中有返回值,那么子类在重写这个抽象方法的时候也必须要传入返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值