2009-04-23 34 views
-1

在C#,這是常見的有這樣的方法:接口中的Java

public IPerson GetPerson() 
{ 
    // do stuff 
    return new Person(..); 
} 

其中「IPerson」是由PersonSpecialPerson,等等。換言之使用的接口,儘管上面的方法返回一個Person ,一個策略模式,可以實現這樣一個SpecialPerson代替Person的返回,只要它們都使用IPerson接口。

是這樣的事情可能在Java中?

+0

我猜我問歸結爲:可以在Java(「IPerson」在這種情況下)的接口從返回一個方法,或作爲參數傳遞給一個方法?當我在做Java時,它看起來並不是一種常見的模式,而在.NET世界裏,我們一直都是這樣做的。只是想知道這是否是一種語言限制。 – Garrett 2009-04-23 13:06:11

+2

谷歌搜索簡單的「Java接口」會告訴你,這是非常準確Java中的相同。 – 2009-04-23 13:06:31

回答

7

是。 Java也有接口。

3

我相信這是幾乎相同的,除了Java使用的界面的「工具」關鍵字。

2

是,Java有界面,如C#:

public interface IPerson { 
    ... 
} 
1

相當於Java中的是:

public Person getPerson() 
{ 
    // do stuff 
    return new SpecialPerson(..); 
} 

Person是一個Java接口(帶有字母前綴接口名稱 「I」 是來自COM編程的約定,因此不適用於Java)。

4

是的,這幾乎是相同的......例如:

// Interface 
public interface IPerson { 
    public String getName(); 
} 

// Implementation of interface - NB "implements" keyword 
public class Person implements IPerson { 
    private final String myName; 

    public Person(String name) { 
     myName = name; 
    } 

    public String getName() { 
     return myName; 
    } 
} 

// Method returning interface 
public IPerson getPerson(String name) { 
    return new Person(name); 
}