另一种实现方式抽象在Java中,是有接口的。
一个interface
是一个完全“抽象类" 用于将相关方法与空主体分组:
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void run(); // interface method (does not have a body)
}
要访问接口方法,该接口必须由另一个类"implemented"(有点像继承)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 Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
abstract
和public
public
,static
和final
1)实现安全性——隐藏某些细节,只显示对象(界面)的重要细节。
2)Java不支持"multiple inheritance"(一个类只能继承一个超类)。然而,它可以通过接口来实现,因为类可以实施多个接口。笔记:要实现多个接口,请用逗号分隔它们(请参见下面的示例)。
要实现多个接口,请用逗号分隔它们:
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();
}
}
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!