抽象类
什么是抽象类?
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类的特征:
- 抽象类不能实例化。
- 抽象类可以包含抽象方法和抽象访问器。
- 不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。
- 从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。
抽象类为什么有构造方法?抽象方法不是不能实例化吗?
抽象类的构造类不是自己使用的,而是给被继承的类使用的。子类继承抽象类的构造方法是用于初始化。
使用抽象类的好处
可以把抽象类看作是一个格式,对于一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。比如把形状写为抽象类,方法写面积,长度等
这样在子类继承的时候必须重写抽象类的方法,就可以规范子类的写法,方便别人看自己的代码,和自己看别人的代码
接口
什么是接口?
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。
在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。
使用接口的好处:
- 简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白)。
- 维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。
- 安全、严密性:接口是实现软件松耦合的重要手段,它描叙了系统对外的所有服务,而不涉及任何具体的实现细节。这样就比较安全、严密一些
接口里面的方法全部都是抽象方法,但接口不能有构造方法。但接口可以使用多个,而继承只可以继承一个。