以前總覺得接口沒什麼用處,現在開始慢慢的瞭解到接口在編程中是能起到很大作用的。爲了更好的理解接口的應用,我又寫了一些相關的測試程序代碼。
接口IPerson,類Mary和類Tom(代碼如Note 4:對接口的理解(一)),
新添加的類GetPerson,功能是簡單的爲用戶提供人員:
public class GetPerson {
private int mary=1; //mark whether Mary is rest.
private int tom=0; //mark whether Tom is rest.
public IPerson applyPerson(){
if(mary==0){
this.mary=1;
return new Mary("Mary");
}
if(tom==0){
this.tom=1;
return new Tom("Tom");
}
return null;
}
}
Main方法:
public class Main {
public static void main(String[] args) {
GetPerson gp=new GetPerson();
IPerson p1=gp.applyPerson();
if(p1==null){
System.out.println("Sorry! No person is rest!");
}else{
System.out.println(p1.getName()+" is emploied for you.");
p1.smile();
p1.talk("Hello! I am "+p1.getName());
}
IPerson p2=gp.applyPerson();
if(p2==null){
System.out.println("Sorry! No person is rest!");
}else{
System.out.println(p2.getName()+" is emploied for you.");
p2.smile();
p2.talk("Hello! I am "+p2.getName());
}
}
我們可以看到,當調用的方法返回的數據類型是不確定的時候,使用接口,就可以很好的來存儲和操作。當然,這樣操作的前提是,返回的數據類型是實現了同一個接口的,而且,後續使用接口進行的操作應該是在接口中事先聲明過的。