java接口、抽象类、实体类关系介绍

来源:互联网 发布:车铣复合手动编程 编辑:程序博客网 时间:2024/05/16 10:23

接口:接口是一个引用类型,与类相似,不过在接口中只能包含常量,方法名和嵌套类型。没有构造器,所以不能被实例化只能被类所实现或者被另外的接口所继承。在接口中声明的方法没有方法体。

抽象类:将类层次中共有的特性抽取出来,创建包含这些共有特性的抽象类,并由抽象类派生出更加具体、有更过实现的子类。抽象类中可能包含抽象方法(即只被声明但没有被实现的方法),可以含有非抽象方法。抽象类也不能被实例化,但可以派生出子类。

因为在java中,一个类只能继承一个父类,这样就限制了子类的功能拓展,但是接口是可以多继承的,所以我们可以写一个接口来继承好多的接口,然后来实现这个接口,这样这个实现类就能实现所有接口的方法。但是如果这个实体类有不能实现的方法,而需要别的类来实现,那么我们就可以用一个抽象类来实现接口中的部分方法,其他的方法交给别的类来实现。

请看下面的几个demo:

1.多接口继承:

interface B{public void set();}interface C{public void get();}interface A extends B,C{public void add();}

接口继承也常用于接口升级。如果我们需要在一个旧接口中添加新的方法,这样会影响它的实现类,我们可以写一个新的接口来继承旧接口,把新方法写到新接口中,这样既不会影响旧接口的实现,还能升级接口。

2.方法分部实现:

如果一个类只能实现接口的部分方法,那么我们就可以用抽象类:

abstract class AImpl implements A{public void set(){System.out.println("set method");}}

如果一个类能实现其他的方法,那么可以让这个类继承抽象类,这样就不必实现接口的全部方法,而只实现抽象类中没有实现的部分:

class AImplAll extends AImpl{@Overridepublic void add() {System.out.println("add method");}@Overridepublic void get() {System.out.println("get method");}}


在java代码的编写中灵活运用接口、抽象类、实体类的关系,可以让代码更清晰,更健壮,更容易维护和升级。