인터페이스의 가장 중요한 역할은 인터페이스를 사용하는 가장 중요한 이유이기도 합니다. 인터페이스는 여러 기본 클래스로 추적될 수 있습니다. 인터페이스를 사용하는 두 번째 이유는 추상 기본 클래스를 사용하는 것과 동일합니다. 클라이언트 프로그래머가 이 클래스의 객체를 만들고 그것이 단지 인터페이스라고 지정하는 것을 방지하기 위해서입니다. 이것은 질문을 제기합니다: 인터페이스를 사용해야 할까요, 아니면 추상 클래스를 사용해야 할까요? 인터페이스를 사용하면 추상 클래스와 인터페이스의 이점을 동시에 얻을 수 있습니다. 따라서 생성하려는 기본 클래스에 메서드 정의나 멤버 변수가 없으면 어쨌든 추상 클래스 대신 인터페이스를 사용할 의향이 있습니다. 실제로 어떤 항목이 기본 클래스가 될 것이라는 것을 미리 알고 있다면 첫 번째 옵션은 이를 인터페이스로 전환하는 것입니다. 추상 클래스는 메서드 정의나 멤버 변수를 사용해야 하는 경우에만 고려해야 합니다.
/** * Created by xfyou on 2016/11/3. * Java 继承和接口演示 */ public class Adventure { static void t(CanFight x) { x.fight(); } static void u(CanSwim x) { x.swim(); } static void v(CanFly x) { x.fly(); } static void w(ActionCharacter x) { x.fight(); } public static void main(String[] args) { Hero i = new Hero(); t(i); u(i); v(i); w(i); } } interface CanFight { void fight(); } interface CanSwim { void swim(); } interface CanFly { void fly(); } class ActionCharacter { // 父类中实现了子类中继承的接口方法 public void fight() { } } /** * 必须先 extends 然后再 impplements */ class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly { @Override public void fly() { } @Override public void swim() { } }