接口的意义,实现了设计与实现的分离。接口是抽象的。
接口里面只有常量和抽象方法。接口里面的常量都是由public static final修饰,写与不写都是一样的效果。接口的抽象方法必须公开,不公开的方法没有意义。
接口的方法都由public abstract修饰,必然是公开的,必然是抽象的。
要调用接口要使用的是实现 implements 而不是继承。
接口就类似制定规矩,而怎么实现,具体怎么做又要看类是怎么实现。
接口可以实现更加抽象的类 如 飞机、火箭、小鸟、石头。
public interface Flyable {
int MAX_SPEED=11000;
int MIN_HEIGT = 1;
void Fly();
}
interface Daren{
void dadada();
}
class feiji implements Flyable,Daren{
@Override
public void Fly() {
System.out.println("发动机引擎");
}
@Override
public void dadada() {
System.out.println("导弹!");
}
}
class huojian implements Flyable{
@Override
public void Fly() {
System.out.println("推进器");
}
}
class xiaoniao implements Flyable{
@Override
public void Fly() {
System.out.println("翅膀,气囊");
}
}
class shitou implements Flyable,Daren{
@Override
public void Fly() {
System.out.println("来来来,丢我!");
}
@Override
public void dadada() {
System.out.println("砸啊!");
}
}
它们都要实现Flyable的fly的方法,它们都能飞,但是飞的方法都没有什么联系,就可以通过接口来实现。而且飞机,石头还可以“打人”。在Flyable的后面+,+ Daren进行实现多个接口。
继承无法实现的类 可以通过接口来实现,接口可以继承多个。也可以多继承
接口无法被实例,只能实例接口的子类。