接口,定義了一堆空實現函數的接口,如下,是對其全部實現類的約束,即必須實現我(接口)事先規定的那些方法,以使得我在操縱父類接口(指向子類實現)時,獲得一種操作上的一致性(多態),而忽視其子類具體實現上的差異,即封裝變化;
public interface Iterator {boolean hasNext();Object next();
}
來看一個簡答的例子:
public interface Animal {...public void makeSound();
}
具體到“狗”,需給出其實現:
public class Dog implements Animal {@Overridepublic void makeSound() {System.out.println("Wang! Wang!");}
}
針對接口編程是什么原則?同理可給出其他具體動物類(豬牛羊等)的叫聲實現。此時如何傳遞動物的實例化對象,調用其叫聲方法呢?
針對實現編程:
public void hearDogSound(Dog dog) {dog.makeSound();
}
如果需要調用牛的叫聲方法:
public void hearCowSound(Cow cow){cow.makeSound();
}
針對對象編程,每想調用不同子類對象的共有方法,都要去創建一個與該類相關的 hearSound() 方法,這樣在 interface 中定義的共有方法便失去了意義。
接口中的方法都不能被實現、針對接口編程:
public void hearSound(Animal animal) {animal.makeSound();
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态