Java中接口和抽象类的区别
经常看到这样的问题,就是问这两个的区别,我这也总结一下:
1,宏观上说,一个是类,一个是接口,类只支持单一继承,接口支持多个继承
2,微观上说,就是从内部来说
a,成员变量方面
-
- 接口可以包含方法,属性,常量(不变的,但是不想一直从数据库中取导致浪费资源的量)
- 抽象类可以包括接口包括的任何成员,同时需要满足的是内部可以有实现的方法和没有实现的方法,同时必须有没有实现的方法
b,接口类是公开的,抽象类可以不是公开的
c,一般使用,接口是在顶部,然后抽象类实现接口,然后对象类来实现抽象类
d,实现接口是必须实现所有的虚方法,但是抽象类并不是这样
相同点
都不能直接实例化