文章目录
接口
在 Java 中实现抽象的另一种方法是使用接口。Aninterface是一个完全“抽象类”,用于将相关方法与空体分组。
例子:
interface Animal { public void animalSound(); // interface method (does not have a body) public void run(); // interface method (does not have a body) }
要访问接口方法,接口必须由另一个带有implements 关键字(而不是extends)的类实现(有点像继承)。接口方法的主体由”implemented“现类提供:
// 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 Main { public static void main(String[] args) { Pig myPig = new Pig(); // Create a Pig object myPig.animalSound(); myPig.sleep(); } }
运行:
接口注意事项:
- 与抽象类一样,接口不能用于创建对象(在上面的示例中,不可能在 MyMainClass 中创建“Animal”对象)
- 接口方法没有主体——主体由“implements”类提供
- 在实现接口时,您必须覆盖其所有方法
- 接口中的方法在默认情况下abstract并 public
- 接口属性默认情况下public, static和final
- 接口不能包含构造函数(因为它不能用于创建对象)
为什么以及何时使用接口?
1)为了实现安全——隐藏某些细节,只显示一个对象(界面)的重要细节。
2)Java不支持“多重继承”(一个类只能从一个超类继承)。但是,它可以通过接口来实现,因为类可以实现多个接口。 注意:要实现多个接口,用逗号分隔它们。
多个接口
要实现多个接口,请用逗号分隔它们:
interface FirstInterface { public void myMethod(); // interface method } interface SecondInterface { public void myOtherMethod(); // interface method } class DemoClass implements FirstInterface, SecondInterface { public void myMethod() { System.out.println("Some text.."); } public void myOtherMethod() { System.out.println("Some other text..."); } } class Main { public static void main(String[] args) { DemoClass myObj = new DemoClass(); myObj.myMethod(); myObj.myOtherMethod(); } }
运行: