1.继承
我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类
子类并没有继承了父类的构造函数,但是,子类会默认的调用父类无参数的构造函数,创建父类对象,让子类可以使用父类中的成员,如果在父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了,子类就调用不到了,所以子类会报错
解决办法:在父类中重新写一个无参数的构造函数
在子类中显示的调用父类的构造函数,使用关键字:base()
FileStream 操作字节的
StreamReader和StreamWriter操作字符的
将创建文件流对象的过程写在using当中,会自动的帮我们释放流所占用的资源
2.多态
让一个对象能够表现出多种的状态(类型)
实现多态的3种手段:1、虚方法 2、抽象类 3、接口
抽象函数没有方法体的
密封类不能够被继承
接口中的成员不允许添加访问修饰符,默认就是public
不允许写具有方法体的函数
什么时候用虚方法来实现多态?
什么时候用抽象类来实现多态?
什么时候用接口来实现多态?
提供的类中能抽出一个父类,用虚方法或者抽象类,父类中能抽出子类中共用的方法,方法不知道怎么实现,用抽象类实现,方法知道怎么实现,用虚方法实现
几个类中找不到父类,可是这几个类中有共同的行为,则用接口