1 概念
Java接口是一些方法声明的集合,一个接口只有方法的声明没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。
2 作用
1)Java是一种单继承的语言
2)实现多态
3 语法格式
定义接口
[访问控制符] interface <接口名>{
类型标识符final 符号常量名n = 常数;
返回值类型 方法名([参数列表]);
…
}
实现接口
[访问控制符] class 类名 [implements <interface>[,<interface>]*],]
{
//类体,必须实现接口中的方法
}
特性
我们可以把接口看作是抽象类的一种特殊情况,在接口中只能定义抽象的方法和常量
接口不可实例化,可结合多态进行使用(接口 对象=new 对象())
接口里的成员属性全部是以 public(公开)、static(静态)、final(最终) 修饰符修饰
接口里的成员方法全部是以 public(公开)、abstract(抽象) 修饰符修饰
接口里不能包含普通方法
子类继承接口必须实现接口里的所有成员方法,除非子类也是抽象类
示例
public class Interface_01 {
public static void main(String[] args) {
System.out.println(A.i);
A.m1();
E e = new E();
e.m3();
}
}
interface A{
//都是静态常量
public static final String SUCCESS = "SUCCESS";
int i = 2;
byte MAX_VALUE = 127;
public static void m1(){
System.out.println("----");
}
public default void m3(){
System.out.println("----");
}
public abstract void m2();
}
interface B{
void m4();
}
//多继承
interface C extends A,B{
void m5();
}
//抽象类实现0~N个抽象方法
abstract class D implements A,B{
}
class E implements C{
@Override
public void m2() {
// TODO Auto-generated method stub
}
@Override
public void m4() {
// TODO Auto-generated method stub
}
@Override
public void m5() {
// TODO Auto-generated method stub
}
}