[英]Java interface concept
構建和接口時,有多少個類可以實現接口?
如果答案不止一個,那么當您調用接口(不直接調用實現)時,java如何知道要使用哪些實現?
有多少個類可以實現接口?
你需要多少就多少。
如果答案不止一個,那么當您調用接口(不直接調用實現)時,java如何知道要使用哪些實現?
這里有助於了解后期綁定(也稱為動態綁定)。
假設您有實現它的接口和類
interface Animal{
void makeSound();
}
class Cat implements Animal{
public void makeSound(){
System.out.println("mew");
}
}
class Dog implements Animal{
public void makeSound(){
System.out.println("woof");
}
}
你也有類似的代碼
Animal a1 = new Cat();
Animal a2 = new Dog();
a1.makeSound();
a2.makeSound();
你會看到的結果是
mew
woof
這是因為在運行時(不是編譯時)正在查找(並調用)方法.makeSound()
主體/代碼。 這是可能的,因為每個對象都會記住它的類,所以a1
引用持有的對象知道它是Cat
實例,而a2
持有的對象是Dog
實例。
簡而言之,當您這樣做時:
a1.makeSound();
a1
持有的對象,Cat
類的實例),Cat.class
文件)並搜索makeSound()
代碼(如果找不到這樣的方法,那么它將假定它必須被繼承,它將嘗試在超類中搜索它)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.