2014-10-07 39 views
-2

首先,我知道這個問題的:What does it mean for a function to return an interface?Java函數返回接口

但是,我還是有點困惑返回型「接口」的方法的使用。

我什麼時候可以使用類似的東西?

public Animal saySomething(String str); 

可能有人請提供何時/何申報saySomething()方法返回一個類型的接口的例子。

謝謝!

編輯:

我的問題似乎是混亂一些。所以我會試着重新說一遍。 我要求我將如何使用以及何時使用返回接口類型的方法的示例。最終我找到了一個很好的例子,並將其作爲我自己的答案提交。

+3

你最好從一個問題開始,並說如何解決這個問題。如果你從一些代碼開始說,我可以找到這個用途,它通常沒有任何意義。 – 2014-10-07 19:21:20

+2

閱讀工廠設計模式。 – plalx 2014-10-07 19:21:27

+0

是你的麻煩,你不明白髮生了什麼?還是你不知道爲什麼有人會這麼做? – 2014-10-07 19:23:41

回答

0

我發現了一個很好的例子,我正在尋找。 https://www.youtube.com/watch?v=TBAKKulJTJ4

下面的代碼: 「編程的洞」

源的讚美。

public interface Animal { 

    public void speak(); 
} 

public class Dog implements Animal { 

    @Override 
    public void speak() {  
     System.out.println("Woof!");   
    } 

} 
public class Cat implements Animal { 

    @Override 
    public void speak() { 
     System.out.println("Meow!"); 
    } 

} 

public abstract class AnimalFactory { 

    public static final int CAT = 0; 
    public static final int DOG = 1; 

    public static Animal createAnimal(int type){ 

     switch(type){ 
      case CAT: 
       return new Cat(); 
      case DOG: 
       return new Dog(); 
     }   
     return null; 
    } 
} 


public class App { 
    public static void main(String[] args) { 

     Animal animal = AnimalFactory.createAnimal(AnimalFactory.CAT);  
     animal.speak(); 

    } 
}