抽象类和接口有什么异同?

相同点:
1.都不能被实例化
2.接口的实现类或者抽象的子类都必须实现类接口或者继承了抽象才可以被实例化
不同点:
1.接口只有定义,方法不能再接口中实现,实现接口的类要实现接口中的所有方法;抽象类可以有定义与实现方法可以在抽象类中实现
2.接口要实现,抽象要继承,一个类可以实现多个接口,但只能继承一个抽象类
3.接口强调设计理念“has-a”的关系,抽象类强调“is-a”关系
4.接口中定义变量默认为public、static、final且要设定初始值方法必须是publicstatic只能是这两个抽象类可以有自己的成员变量也可以有非抽象的成员方法,成员默认值为:default
5.接口被运用于比较常用的功能,抽象更倾向于充当公共类的角色
6.接口是定义规范的,抽象是对公共部分的抽取

你可能感兴趣的:(Java)