這裡我也就大概說一下他們的關系, 接口就是動物,然而每一個類就是一種動物 給貓有兩個功能:叫和睡覺 狗:叫 在f方法裡面可以把貓的功能實作 但不能實作狗的功能 在主方法裡面有一個貓有一個狗 分别調用 這裡一個類可以繼承于多個接口下面 繼承的多個接口用,分開 再舉個例子就是 鳄魚和螞蟻都能爬,但是鳄魚還能進水,而螞蟻不行 鳄魚可以繼承陸地和水 而螞蟻隻能繼承陸地
interface Animal{//接口
void show();
}
class cat implements Animal{//貓是動物的一種,就繼承在他下面
public void show() {
System.out.println("喵喵喵……");
}
public void sleep() {
System.out.println("睡覺……");
}
}
class dog implements Animal{//狗同上
public void show() {
System.out.println("汪汪汪……");
}
}
public class 多态 {
public static void main(String[] args) {
Animal a = new cat ();
a.show();
Animal b = new dog();
b.show();
f(a);
f(b);
}
public static void f(Animal animal) {
if(animal instanceof cat) {//Java自帶方法看an是不是cat的子集
//如果不是cat的子集,就跳過,dog中沒有睡覺一說
cat cat = (cat) animal;
cat.show();
cat.sleep();
}
else {
System.out.println("this animal is not a cat");
}
}
}