下面我有一個Person接口,一個實現類和一個驅動程序類,它用一個名字初始化Person並只輸出一次。什麼是使用接口與具體類
Person person = new PersonImpl();
,而不是
PersonImpl person = new PersonImpl();
的接口應該被隱藏實現的優勢在哪裏? 這是使用接口的正確方法嗎?
public class Driver {
public static void main(String [] args)
{
Person person = new PersonImpl();
person.setName("test name");
System.out.println("Name is "+person.getName());
}
}
public interface Person {
public void setName(String name);
public String getName();
}
public class PersonImpl implements Person{
private String name;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
是的,它是好工作。 – 2011-04-14 23:01:32
謝謝,但我認爲我不完全理解它,也許即時沒有看到更大的圖片爲什麼不只是使用 - PersonImpl person = new PersonImpl(); person.setName 「test name」); System.out.println(「Name is」+ person.getName()); – user701254 2011-04-14 23:03:35
當然,如果你期望只有一種類型的人你根本不需要接口;你可以直接實現一個Person類。對於在*相同子系統或模塊*中的代碼尤其如此。通常建議爲其他軟件包可見的類定義一個接口。 – 2013-08-14 22:33:16