为什么要使用接口?
1.指明相关或不相关类的多个对象的共同行为
2.将设计与实现分离
声明格式:
[访问修饰符] interface 接口名 [extends 父接口1,父接口2....] {
常量定义:
方法定义:
}
定义接口说明:
1.访问修饰符:只能是public或默认。
2.接口:和类名采用同名机制。
3.extends:接口可以多继承。
4.常量:接口中的属性只能是常量,总是:public static final修饰。不写也是的。
5.方法:接口中的方法只能是: public abstract。省略也是public abstract.
要点:
1.子类通过implements来实现接口中的规范。
2.接口不能创建实例,但是可以用于声明引用变量类型。
3.一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
public interface MyInterface {
/*public static final*/int MAX_AGE = 100;
/*public abstract*/ void test1();
}
class MyClass implements MyInterface {
@Override
public void test1() {
System.out.println(MAX_AGE);
System.out.println("MyClass.test01()");
}
}
接口的简单使用:
public class TestInterface {
public static void main(String[] args) {
Volant v = new Angel();
v.fly(); //输出:Angel.fly()
Honest h = new GoodMan();
h.HelpOther(); //输出:GoodMan.HelpOther()
}
}
//飞行接口
interface Volant {
int FLY_HEIGHT = 1000;
void fly();
}
//善良接口
interface Honest {
void HelpOther();
}
class Angel implements Volant,Honest {//实现类可以实现多个接口
@Override
public void HelpOther() {
System.out.println("Angel.helpOther()");
}
@Override
public void fly() {
System.out.println("Angel.fly()");
}
}
class GoodMan implements Honest {
@Override
public void HelpOther() {
System.out.println("GoodMan.HelpOther()");
}
}
接口支持多继承:
public class TestInterface {
}
interface A {
void testa();
}
interface B {
void testb();
}
//接口可以多继承,接口C继承B,C
interface C extends A,B {
void testc();
}
class Mysubclass implements C {
@Override
public void testa() {
// TODO Auto-generated method stub
}
@Override
public void testb() {
// TODO Auto-generated method stub
}
@Override
public void testc() {
// TODO Auto-generated method stub
}
}