一、接口定义
接口可以理解为更彻底的抽象类,接口中的组成以抽象方法和全局常量为主(JDK1.8后也可以包含普通方法和静态方法)。定义如下:
interface ITest {
public static final String MSG = "1111";
public abstract String getMsg();
}
public class Demo {
public static void main(String[] args) {
}
}
(接口名前加上“I”,方便识别这是一个接口)
二、接口使用
- 接口需要被子类实现(implements),且一个子类可以实现多个接口;
- 子类(如果不是抽象类)要覆写接口中全部抽象方法;
- 接口对象需要子类对象向上转型进行实例化。
另外,接口主要用于描述一个公共的标准,所以接口的抽象方法都要用public修饰,且即使不写public,在接口中的抽象方法也默认是public的。子类覆写时,因为要求不低于父类的权限,也只能是public修饰。
三、接口与抽象类的区别
抽象类 | 接口 | ||
1 | 定义关键字 | abstract | interface |
2 | 组成 | 构造、普通方法、静态方法、全局常量、普通成员、static方法 | 抽象方法、全局常量、普通方法、static方法 |
3 | 权限 | 所有权限定义 | 只能是public |
4 | 子类使用 | extends继承一个 | implements实现多个 |
5 | 两者关系 | 可以实现若干接口 | 不允许继承抽象类,可继承多个接口 |
6 | 使用 | 1.都要定义子类 2.子类都要覆写全部抽象接口 3.实例化都是通过子类向上转型实现 |