什么是接口?
接口可以理解为是抽象类抽象到极致,它还是一个类结构,它不能用class来修饰,应该改用interface来修饰,接口通常是为了定义规则。
接口中成员有什么特点?
- 属性:不能含有一般属性,只能含有公有的静态的常量修饰的属性—public static final,可以直接默认写数据类型+变量名+赋值,(public static final)修饰可以省略.
- 方法:不能含有一般方法,只能含有公有的抽象的方法(在jdk1.8版本之后,可以通过defualt修饰方法来写具体的方法)
- 块:不能含有一般程序块 ,也不能含有static块(块本身就是具体的事情,接口中不让有具体的事情)
- 构造方法:不能含有构造方法(方法都是只有结构不能有方法体)
如何使用接口、创建对象
- 接口不能创建对象
- 只能通过子类implements实现接口来创建对象做事情
- 接口可以多实现(public class A implements B,C,D{})
接口与别的类的关系
- 接口不能继承其他类(最抽象),可以多继承接口
- 抽象类可以直接多实现接口
- 具体类不可以直接多实现接口(必须将接口中的抽象方法具体化,或者自己变成抽象类或接口)
测试示例:
接口类:
public interface TestInterface {
public static final String name="chenhui";
//相当于 String name="chenhui";
public abstract void test();
//相当于void test();
//jdk1.8版本之后使用default关键字修饰的方法可以写具体方法
public default void method(){
}
}
public interface InterfaceOne {
void testOne();
}
public interface InterfaceTwo {
void testTwo();
}
子类实现接口:
public class Test implements TestInterface {
//具体类必须实现接口中的抽象方法(否则要自己要变成抽象类或接口)
@Override
public void test() {
}
}
子类可以多实现接口
public class Test implements TestInterface,InterfaceOne {
@Override
public void testOne() {
}
@Override
public void test() {
}
}
接口可以多继承接口:
public interface TestInterface extends InterfaceOne,InterfaceTwo{
}