2009-04-23 57 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); 
}