我正試圖掌握接口及其在Java中的實現。使用實現對象分配
我有一個接口和3個類,其中2個實現接口。接口的實現需要2種方法,
toString()
[其在此處使用@Overide
爲Netbeans的滿意]和wheelCount()
。公共接口IVehicle {
@覆蓋 公共字符串的ToString(); public int wheelCount();
}
然後,我們有兩個類自行車和汽車。
public class Bike implements IVehicle{
@Override
public int wheelCount() {
return 2;
}
@Override
public String toString(){
String s = "This is a Bike with " + wheelCount() + " wheels!";
return s;
}
}
public class Car implements IVehicle{
@Override
public int wheelCount() {
return 4;
}
@Override
public String toString(){
String s = "This is a Car with " + wheelCount() + " wheels!";
return s;
}
}
一些所謂myClass
其他類包含了要打印的東西出來的方法...... printStuf()
public void prntStuf(IVehicle myVehicle){
String s = myVehicle.toString();
System.out.println(s);
}
假設myClass
一個實例中,我們創建的Bike()
和Car()
實例代碼創建的,如果一個地方,並且我們將這些對象傳遞給方法prntStuf
,那麼使用這些任務中的哪一個會有什麼好處。
IVehicle X =新車()
IVehicle modeoftransport1 = new Car();
IVehicle modeoftransport2 = new Bike();
與之相對...車X =新車()
Car modeoftransport1 = new Car();
Bike modeoftransport2 = new Bike();
是否有實際差別還是收益,還是歸結爲編碼慣例?
從我所知道的來看,它們都具有相同的效果,因爲它們都產生相同的結果。我已經瀏覽了此處的以前的問題,並搜索了網頁,但無法把它指向它。希望這是有道理的。
可能的重複[爲什麼你會聲明一個接口,然後在Java中使用它實例化一個對象?](http://stackoverflow.com/questions/7716435/why-would-you-declare-an-interface-and - 然後實例化一個對象與它在java中) – MAK
@MAK這是我的朋友,沒有意識到他也發佈了這個問題。是否可以合併或刪除這個? – AJQShake