Java - 抽象问题
我有这个麻烦。我正在和一些库一起工作,我需要创建一个接口类。Java - 抽象问题
- 如果我做
this.createITextArea()
它会创建对象。 - 如果我做
ITextArea area = new ITextArea()
我不能,因为这个类是抽象的。
事实上,我需要发送一个函数。但用第一种方法我不能,或者我不知道如何获得该类的变量。我怎么能通过它?
我需要像area=this.createITextArea()
出头,这样我就可以在函数中使用变量区...
希望这个问题是清楚的...
那么,什么是这个问题:
ITextArea area = this.createITextArea();
?
你并不需要创建一个接口的实例。你需要创建一个类的实例,其中实现了表示接口。查找或编写这样的实现,实例化该实现,然后将其分配给您的变量。
尽管这个问题是一个有点不清楚:
例如为:
ITextArea area = this.createITextArea();
someObj.someMeth(area);
或内联:
someObj.someMeth(this.createITextArea());
我建议进一步阅读的Java接口。
一个类的实例是从来没有一个接口。一个方法可以返回一个接口类型,但是通过该方法获得的“thing”总是一个实现这个接口的对象。
一些简单的例子来说明它:
public static main(String[] args) {
List list = createList();
}
public static List createList() {
return new ArrayList();
}
createList
该方法返回一个接口类型(List
)但它返回一个实类(ArrayList
)的一个实例。因此最后,局部变量list
持有对此实例ArrayList
的引用。
回到你的例子:假设你有一个接口
public interface ITextArea { /* methods */ }
,并希望创建一个对象“实现此接口”,那么你就需要像
public class TextArea implements ITextArea { /* methods */ }
和你”其他类我想创建这个具体类的实例。
一个很好的解释!谢啦! – markzzz 2010-11-10 12:50:14
YEAH!这个石头。谢啦! – markzzz 2010-11-10 12:25:58