Java中抽象类和接口的区别

来源:互联网 发布:linux安装tomcat9 编辑:程序博客网 时间:2024/06/06 07:21

抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高

1.抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,抽象变量必须指向所有接口方法的类对象

2.抽象类要被子类继承,接口要被类实现

3.抽象类里可以没有抽象方法,如果类里有抽象方法,那么这个类只能是抽象类

4.接口里定义的变量只能是公共的静态常量(public static final),接口里的方法时公共的抽象方法(public abstract),抽象方法要被实现,所以不能是静态的,也不能是私有的,抽象类里的变量是普通变量

5.抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类,同样,一个类实现接口的时候,如果不能全部实现接口方法,那么该类也只能为抽象类

举例:抽象类表示的是这个对象是什么,接口表示的是这个对象能做什么,比如,男人和女人这两个类,他们的抽象类是人,说明他们是人,人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义一个接口,然后让这些类去实现它

在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口,走路接口).

1 0
原创粉丝点击