接口定义了类或对象应该提供哪些方法或属性,但并不实现这些方法的具体逻辑,而是由实现接口的类或对象来具体实现这些方法。
接口的作用包括:
1.定义了一组公共的方法,可以让多个类共同遵循同一个接口,从而实现类之间的统一性和可替换性。
2.使得代码更易于维护和扩展。
3.通过接口可以实现多态性,即一个对象可以根据不同的接口类型表现出不同的行为。
public interface MyInterface {//接口
// 静态常量,默认修饰符public final static
public final static int MY_CONSTANT = 10;
// 抽象方法,默认修饰符public abstract
public void doSomething();
// 默认方法(Java 8 新增)
default void doSomethingElse() {
// 方法实现
System.out.println("接口默认方法");
}
// 静态方法(Java 8 新增)
static void staticMethod() {
// 方法实现
System.out.println("接口静态方法");
}
}
package com.zsh.java;
public interface IFly {//飞接口
void flying();
}
package com.zsh.java;
public class Plane implements IFly{//飞机子类实现飞接口
private String name;
public Plane(String name) {
this.name = name;
}
public void start(){
System.out.println(this.name + "正在启动!");
}
@Override
public void flying() { //覆写接口的抽象方法
System.out.println("发动机正常启动," + this.name + "正在飞行!");
}
}
package com.zsh.java;
public class Bird implements IFly{//小鸟子类实现飞接口
private String name;
public Bird(String name) {
this.name = name;
}
public void sweet(){
System.out.println(this.name + "正在鸣叫!");
}
@Override
public void flying() {//覆写接口的抽象方法
System.out.println(this.name + "正在快速扇动翅膀飞行!");
}
}
package com.zsh;
import com.zsh.java.Bird;
import com.zsh.java.IFly;
import com.zsh.java.Plane;
public class Demo001 {
public static void testFly(IFly fly) {//参数IFly类型,需要传入能飞的对象
fly.flying();
}
public static void main(String[] args) {
testFly(new Plane("C919"));
testFly(new Bird("麻雀"));
}
}
结果展示: