开闭原则
如果不是为了修bug或者添加新的功能的话 一般没事干不要老去动代码
抽象类(专作为基类而生)
使用abstract修饰 此时这个类叫做抽象类
(不能是private 必须是可被子类看见的访问级别)
不能被实例化
类中实现了一部分则成为抽象类
(未实现等待子类重写的方法叫做虚方法 需要用abstract修饰)
(实现抽象方法的时候也要用override修饰)
抽象类是未完全实现 接口是完全未实现
抽象类中的成员只要求不是private 但是接口中的成员强制要求是public
接口
一个抽象类中所有成员都是抽象的,都没有实现称为接口
如果一个类为接口的话 不再使用abstract修饰 而是使用interface 此时要求类中的所有成员都是public 因为接口本身所有成员皆为抽象 所以abstract也不用写
接口的子类完善方法时不用写override 此时如果仍然要留有一部分成员交给子类完成那么仍然使用abstract修饰
此时这个子类也用abstract修饰 作为抽象类
接口的命名规则 I+Name
接口是一种契约
要求其子类都具有那些功能(可能实现方法不一样但是都有这样的功能或遵循这样的规则)