Extends 與 implements 的差別是:extends 用於類別(class),implements 用於介面(interface)。介面(interface)不可extends。
請看以下例子
interface Animal{}
class Mammal implements Animal{}
public class Dog extends Mammal{
public static void main(String args[]){
Mammal m = new Mammal();
Dog d = new Dog();
System.out.println(m instanceof Animal);
System.out.println(d instanceof Mammal);
System.out.println(d instanceof Animal);
}
}
輸出為:
true
true
true
可以看到不論是implements 還是 extends 都可以用 instanceof 來判斷父類別。
另外,Java支持單一繼承,一個類別不可繼承自多個類別,以下程式是錯誤的:
public class extends Animal, Mammal{}
by: ZackLive