C#学习笔记——抽象类 开闭原则 接口

开闭原则

如果不是为了修bug或者添加新的功能的话 一般没事干不要老去动代码

抽象类(专作为基类而生)

使用abstract修饰 此时这个类叫做抽象类
(不能是private 必须是可被子类看见的访问级别)
不能被实例化
类中实现了一部分则成为抽象类
(未实现等待子类重写的方法叫做虚方法 需要用abstract修饰)
(实现抽象方法的时候也要用override修饰)

抽象类是未完全实现 接口是完全未实现
抽象类中的成员只要求不是private 但是接口中的成员强制要求是public

接口

一个抽象类中所有成员都是抽象的,都没有实现称为接口
如果一个类为接口的话 不再使用abstract修饰 而是使用interface 此时要求类中的所有成员都是public 因为接口本身所有成员皆为抽象 所以abstract也不用写
接口的子类完善方法时不用写override 此时如果仍然要留有一部分成员交给子类完成那么仍然使用abstract修饰
此时这个子类也用abstract修饰 作为抽象类
接口的命名规则 I+Name

接口是一种契约
要求其子类都具有那些功能(可能实现方法不一样但是都有这样的功能或遵循这样的规则)

你可能感兴趣的:(c#)