天天看点

JAVA基础抽象类与接口的区别

一.抽象类和接口的区别,主要注意接口的特殊性

A:成员区别

抽象类:

成员变量:可以变量,也可以常量

构造方法:有

成员方法:可以抽象,也可以非抽象

接口:(在JDK8之后,成员方法可以用default和static修饰)

成员变量:只可以常量 //默认修饰符:public static final

成员方法:只可以抽象 //默认修饰符:public abstract

B:关系区别

类与类

继承,单继承

类与接口

实现,单实现,多实现

//多实现eg: class Son implements Father,Mother {}

接口与接口

继承,单继承,多继承

//多继承eg: interface Sister extends Father,Mother {}

C:设计理念区别

抽象类 被继承体现的是:”is a”的关系。抽象类中定义的是该继承体系的共性功能。

接口 被实现体现的是:”like a”的关系。接口中定义的是该继承体系的扩展功能。