接口interface是与类并行的一个概念。
- 接口可以看成是一个特殊的抽象类,是一个常量与抽象方法的集合。常量:所有的常量都是用public static final来修饰的。抽象方法:所有的方法都用public abstract修饰
- 接口没有构造器。
- 接口定义的就是一种功能,此功能可以被类实现(implements)
- 实现接口的类,必须要重写接口中全部的抽象方法,这个类才能被实例化,否则该实现类仍然是一个抽象类。
- 类可以实现多个接口,Java类是单继承。
- 接口与接口之间是继承关系,而且可以是多继承。
- 第5点和第6点是描述的继承的特点。
接口的多态性:
接口与具体的实现类之间也存在多态性
public class Polymorphic {
public static void main(String[] args) {
Duck d = new Duck();
Polymorphic p = new Polymorphic();
p.method1(d);
p.method2(d);
p.method3(d);
}
public void method1(Runner r) {
r.run();
}
public void method2(Swimmer s) {
s.swim();
}
public void method3(Flier f) {
f.fly();
}
}
interface Runner {
void run();
}
interface Swimmer {
void swim();
}
interface Flier {
void fly();// public abstract void fly();
}
class Duck implements Runner, Swimmer, Flier {
@Override
public void fly() {
System.out.println("煮熟的鸭子飞了!");
}
@Override
public void run() {
System.out.println("鸭子扭扭的跑");
}
@Override
public void swim() {
System.out.println("红掌拨青波");
}
}