一、接口
接口可以看做是特殊的抽象类。但接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法,接口则包含类要实现的方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
二、特点
1.接口不能用于实例化对象。
2.接口没有构造方法。
3.接口中所有的方法必须是抽象方法。(jdk1.7版本及以前)
4.接口不能包含成员变量,除了 public static final修饰的变量。
5.接口不是被类继承了,而是要被类实现。
6.接口支持多继承。
7.接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(也只能是public abstract修饰)。
三、定义
使用interface关键字声明(不能与abstract一起使用)。
例:
//定义接口
public interface MyInterface {
//定义抽象方法
public abstract void fun_1();
//定义抽象方法,默认被public abstract 修饰,可以省略不写
void fun_2();
}
四、实现接口
要想使用接口,需要创建一个类,实现接口,实现接口中的所有抽象方法,创建实现类的对象来使用。实现接口使用implements关键字。
例:
//定义接口
public interface MyInterface {
//定义抽象方法
public abstract void fun_1();
//定义抽象方法,默认被public abstract 修饰,可以省略不写
void fun_2();
}
//定义类,实现上述定义的接口
class Myclass implements MyInterface{
//实现接口中的所有抽象方法
@Override
public void fun_1() {
System.out.println("我是接口中的抽象方法1");
}
@Override
public void fun_2() {
System.out.println("我是接口中的抽象方法2");
}
}
//定义测试类
class Test{
public static void main(String[] args){
//创建实现类对象
Myclass mc = new Myclass();
//调用实现后的方法
mc.fun_1();
mc.fun_2();
}
}
一个类可以同时实现多个接口,接口名使用逗号分隔。
一个类也可以继承一个类的同时,实现多个接口。
一个接口能继承另一个接口。