Java - 抽象问题

Java - 抽象问题

问题描述:

我有这个麻烦。我正在和一些库一起工作,我需要创建一个接口类。Java - 抽象问题

  • 如果我做this.createITextArea()它会创建对象。
  • 如果我做ITextArea area = new ITextArea()我不能,因为这个类是抽象的。

事实上,我需要发送一个函数。但用第一种方法我不能,或者我不知道如何获得该类的变量。我怎么能通过它?

我需要像area=this.createITextArea()出头,这样我就可以在函数中使用变量区...

希望这个问题是清楚的...

那么,什么是这个问题:

ITextArea area = this.createITextArea(); 

+0

YEAH!这个石头。谢啦! – markzzz 2010-11-10 12:25:58

你并不需要创建一个接口的实例。你需要创建一个类的实例,其中实现了表示接口。查找或编写这样的实现,实例化该实现,然后将其分配给您的变量。

尽管这个问题是一个有点不清楚:

例如为:

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 */ } 

和你”其他类我想创建这个具体类的实例。

+0

一个很好的解释!谢啦! – markzzz 2010-11-10 12:50:14