一、概念类
①、什么是Stream流,什么情况下用Stream流?
Stream(流),类Stream为抽象类,需要引入命名空间: using System.IO,其中类Stream为抽象类,由此有三个派生类:
MemoryStream:对内存进行读取与写入
BufferedStream:对缓冲器进行读取/写入
FileStream:对文件执行读取与写入
TextReader/Writer为抽象类。由此派生类:
StreamReader/StreamWirter
StringReader/StreamWriter
为什么引入文件流:读取大文件时,无法一下子传送过去,只能一点一点的读取,这就好比水龙头流水一样,我要接一桶水,要水管一点一点的放入。当接满后(读取完后)要关闭水管(文件流),把文件流代码放入using( )括号内,using可自动释放资源。
②、什么是Directory?什么时候用?如何用?
Directory类位于System.IO命名空间,Directory类提供了在目录和子目录中进行创建移动和列举操作的静态方法。此外,Directory还可以访问和操作各种各种的目录属性。我个人善于把它理解为文件件的操作。
一般对文件夹进行操作时使用,Directory属于静态类,所以直接 “ . ”调取方法。
③、什么是子类,什么是父类,如何理解面向对象的继承性?
子类父类的名词来自对象的三个特征中的继承性,如果一个类A“继承自”另一个类B,就把这个A称为“B的子类”,而把B称为“A的父类”。
继承性子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
④、什么是重写,什么是重载,区别是什么?
重写(override):子类重写父类中的方法,不管父类中是虚方法还是抽象方法,子类都可重写。
重载(overload):重载是方法的名称相同,参数或类型不同,进行多次重载以适应不同的需要。
区别: 重写:子类重写写父类的方法,面向对象。
重载 :为方法添加不同参数不同类型的内容,面向过程。
⑤、什么是虚方法,什么是抽象方法,什么是抽象类,虚方法与抽象方法的异同?
虚方法(Virtual):当类中的方法声明前加上了Virtual修饰符,我们称之为虚方法,反之为非需。使用了virtual修饰符后,不允许再有static,abstract,override修饰符;虚方法有内容。
抽象方法(Abstract):在面向对象编程语言中抽象方法指一些只有方法声明,而没有具体方法体的方法。抽象方法一般存在与抽象类或接口中。
抽象类:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。在编程语句中用abstract修饰的类是抽象类,抽象类是不完整的,它只能用作基类,抽象类不能实例化。
虚方法与抽象方法的区别: