java中的抽象类(abstract)和接口(interface)的区别:
1.一个是类,一个是接口
类更像是一种类型的提取,接口更像是一种行为的抽取
比如:动物分为胎生动物和卵生动物
即我们可以创建抽象类动物:
public abstract class Animal {
}
然后创建胎生动物和卵生动物
public abstract class VpAnimal extends Animal {
}
public abstract class OpAnimal extends Animal {
}
对于接口,我们可以创建动作,比如喝水
public interface DrinkWater(){
}
2.抽象类可以有自己的成员变量,接口只能定义静态成员变量且必须是final类型
3.抽象类可以有普通方法,而接口必须是抽象方法
4.抽象类的方法可以为public,protected类型,接口类型必须是public类型
5.一个类可以实现多个接口,但只能继承一个抽象类,因为java是单继承语言
6.抽象类中可以有静态方法,接口中不能有,因为静态方法随类加载
7.抽象类可以有构造方法,接口中不能有