抽象类与接口
抽象类的作用
抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类设计的随意性。
抽象父类可以只定义需要使用的某些方法,把不能实现的部分抽象成抽象方法,留给其子类去实现。
父类中可能包含需要调用其他系列方法的方法,这些被调用方法既可以由父类实现,也可以由其子类实现,父类里提供的方法只是定义了一个通用的算法,其实现也许并不完全由自身实现,而必须依赖于其子类的辅助。
接口的继承
接口支持多继承,子接口扩展某个父接口后,将会获得父接口里定义的所有抽象方法和变量。
接口不能用于创建实例,但接口可以用于声明引用类型变量。当使用接口来声明引用类型变量时,这个引用类型变量必须引用到其实现类的对象。除此之外,接口的主要用途就是被实现类实现。接口的用途归纳如下:
- 定义引用型变量,也可用于进行强制类型转换。
- 调用接口中定义的常量。
- 被其他类实现。
面向接口编程
接口体现的是一种规范和实现分离的设计哲学,充分利用接口可以极好的降低程序各模块之间的耦合,从而提高系统的可扩展性和可维护性。
注意:
抽象类不可以直接被实例化,但是可以通过子类继承达到间接实例化。
接口不可以被实例化
接口不是抽象类,他是单独声明的
Java中具体类、抽象类、接口的主要区别与联系
之前有发过,点链接就行
Java中具体类、抽象类、接口的主要区别与联系—超链接