语法:
interface 接口名 extends 父接口1,父接口2,......{
//常量定义
//方法定义
}
语法
class 类名 extends 父类名 implements 接口1,接口2,......{
//类成员
}
interface 接口名 extends 父接口1,父接口2,......{
//常量定义
//方法定义
}
语法
class 类名 extends 父类名 implements 接口1,接口2,......{
//类成员
}
public interface A { //类的修饰只能public 默认(不写)
//接口里的方法都是抽象方法
public int add();
public int add2();
int add3();
//接口里的方法都是public 和abstract;
int a = 1; //接口里的属性都是静态属性
void print();
}
注意:
◉接口的命名规则与类相同
◉和抽象类一样,接口也不能实例化,接口中不能有构造方法
◉接口中可以定义常量,不能定义变量(接口中的属性都是全局静态常量,且接口中的常量必须在定义时指定初始值)
public static final int PI = 3.14;
int PI = 3.14; //在接口中,这两个定义语句效果完全相同
int PI; //错误;在接口中必须指定初始值,在类中会有默认值
◉一个类的同时实现多个接口当继承和实现同时出现,继承在前实现在后
◉接口的方法名体现了接口的能力;接口的方法参数列表体现了接口的约定
public class Test05 {
public static void main(String[] args) {//静态属性和静态方法只能被继承不能被重写
Printer printer = new Printer();
InBox inBox = new ColorInBox();//以接口的方式进行声明,以实现类的方式进行赋值
Paper paper = new A4Paper();
printer.setInBox(inBox);
printer.setPaper(paper);
printer.print();
}
}
▣接口表示一种能力
▣接口表示一种约定