抽象类与接口

来源:互联网 发布:回力帆布鞋知乎 编辑:程序博客网 时间:2024/06/04 01:04

接口与抽象类

接口 所有的变量必须是 没有构造方法。接口不能用new操作 所有的方法必须是公共的抽象实例方法
public static final 符实例化

一个类可以实现多个接口与,但是只能继承一个父类(单一继承,多重扩展)
利用extends,接口可以继承其他接口,这样的接口称为子接口
接口可以扩展接口而不是类。一个类可以扩展它的父类同时实现多个接口。

所有的类共享一个根类Object,但是接口没有共同的根。
但是接口与类相似,也可以定义一种类型。
一个接口变量可以引用任何实现该接口的类的实例。(如果一个类实现了接口,那么这个接口就相似于该类的一个父类)

抽象类和接口都是用来明确多个对象的共同特征
清楚地描述父子关系的 强的“是一种”关系(strong is-a relationship))应该使用类建模;
描述 弱的“是一种”关系(weak is-a relationshhip)也称为类属性关系,它表命名对象拥有某种属性,可以使用接口来建模。

推荐使用接口而非抽象类,因为接口可以定义非相关类共有的父类型。接口比类更加灵活。

Comparable 接口
定义有compareTo() 方法,用于比较对象
Comparable 接口是一种范型接口。在实现该接口时候,范型类型E被替换成一种具体的类型。
如果对象是Comparable 接口类型实例的话 ,就可以使用,java.util.Arrays.sort(Object[]); 方法对数组对象进行比较排序。

Cloneable 接口
这个接口是空的。一个带空体的接口称作标记接口。一个标记接口不包括常量也不包括方法。他用来表好似一个类拥有某些特定的属性。实现Cloneable接口的类标记为可克隆的,而且它的对象可以使用在Object类中定义的clone() 方法克隆。
(注意克隆状况下的深复制和浅复制)

                        参考资料《java语言程序设计》
原创粉丝点击