接口
格式:interface InnerA{
静态常量
抽象方法
}
类实现一个接口implements
接口继承的关键字extends
接口是多继承,一个接口可以继承多个接口
一个类可以实现多个接口
如下图所示:
代码示例如下:
/*
* interface:
* 1.接口可以看成是一个特殊的抽象类,接口是一个常量和抽象方法的集合,其可以只含有常量或抽象方法,当然其两者也都可以有或没有;
* 2.所有的接口是没有构造器的,所有的类都是有构造器的,包括抽象类;
* 3.接口定义的是一种功能,可以被类来实现(implements),比如:class DD extends BB implements AA,EE{}
* 4.interface的修饰符可以是public或默认的,其和类一样;但是由于一个文件中只能有一个public,所以在本文件中不能再用public修饰interface了;
* 5.接口是多继承,一个接口可以继承多个接口,一个类也可以继承多个接口;
*/
package com;
public class TestImpents {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
interface AA{
//常量:所有的常量都用public static final修饰,只是在接口中,可以将public static final省略不写,但其确实是存在的;
int speed = 20;
//抽象方法:所有的抽象方法都是用public abstract修饰,在接口中,也可以将public abstract省略不写,但是其也确实存在;
void read();
void write();
}
interface EE{
}
class BB{
}
interface CC extends AA{ //接口继承接口,用entends关键字
}
class DD extends BB implements AA,EE { //类继承接口用implements关键字
public void read(){
}
public void write(){
}
}
代码示例二如下:
package com.example.interfaceAndAbstract; /** * Created by Will Smith on 2016/5/29. */ public interface InterfaceTest1 { void test(); }
package com.example.interfaceAndAbstract; /** * Created by Will Smith on 2016/5/29. */ public interface InterfaceTest2 { void test(); void test2(); }
package com.example.interfaceAndAbstract; /** * Created by Will Smith on 2016/5/29. */ public class TestInterface implements InterfaceTest1,InterfaceTest2 { @Override public void test() { } @Override public void test2() { } }
注:通过示例二,我们可以看出,若两个接口的方法一样,那么当第三者共同实现这两个接口时,这两个接口相同方法的部分,只需实现一个;