Java interface 关键字

  • 定义和用法

    interface关键字用于定义接口。interface关键字用于声明一个特殊类型的类,只包含抽象的方法。要访问接口方法,接口必须由另一个类使用implements关键字(而不是extends)“实现”(有点像继承的)。接口方法的主体由“实现”类提供。
    接口注意事项:
    • 它不能用于创建对象(在下面的示例中,无法在MyMainClass中创建“Animas”对象)
    • 接口方法没有主体-主体由“实现”类提供
    • 在实现接口时,必须重写其所有方法
    • 接口中的方法在默认情况下修饰符为abstractpublic
    • 接口属性默认情况下publicstaticfinal
    • 接口不能包含构造函数(因为它不能用于创建对象)
    为什么以及何时使用接口?
    为了实现安全性-隐藏某些细节,仅显示对象(接口)的重要细节。Java不支持“多重继承”(一个类只能从一个超类继承)。但是,可以使用接口来实现,因为该类可以实现多个接口。 注意:要实现多个接口,请用逗号分隔它们(请参见下面的示例)。
  • 示例

    一个interface是一个抽象的“类”,用于将相关方法与“空”主体组合在一起:要访问接口方法,该接口必须由另一个类使用implements 关键字(而不是extends)“实现”(有点像继承的)。接口方法的主体由“ implement”类提供:
    // interface
    interface Animal {
      public void animalSound(); // interface method (does not have a body)
      public void sleep(); // interface method (does not have a body)
    }
    
    // Pig "implements" the Animal interface
    class Pig implements Animal {
      public void animalSound() {
        // The body of animalSound() is provided here
        System.out.println("The pig says: wee wee");
      }
      public void sleep() {
        // The body of sleep() is provided here
        System.out.println("Zzz");
      }
    }
    
    class MyMainClass {
      public static void main(String[] args) {
        Pig myPig = new Pig();  // Create a Pig object
        myPig.animalSound();
        myPig.sleep();
      }
    }
    
    尝试一下
    要实现多个接口,请用逗号分隔它们:
    interface FirstInterface {
      public void myMethod(); // interface method
    }
    
    interface SecondInterface {
      public void myOtherMethod(); // interface method
    }
    
    // DemoClass "implements" FirstInterface and SecondInterface
    class DemoClass implements FirstInterface, SecondInterface {
      public void myMethod() {
        System.out.println("Some text..");
      }
      public void myOtherMethod() {
        System.out.println("Some other text...");
      }
    }
    
    class MyMainClass {
      public static void main(String[] args) {
        DemoClass myObj = new DemoClass();
        myObj.myMethod();
        myObj.myOtherMethod();
      }
    }
    
    尝试一下
  • 相关页面

    Java 教程:Java 接口