2012-11-11 109 views
0

我有一个名为A的抽象类。创建抽象类的对象 - 错误

public abstract class A { 
protected String name; 
A(String name){ 
    this.name=name; 
} 
} 

上面类是在包com.goog.product.demo

现在从另一个包,我需要如下所示加载一些测试数据,通过创建一个对象;

以下班级在包com.goog.product.test

public class Test { 

public void loadData(){ 
    A a =new A("NAME"); 
} 
} 

但是,我最终得到一个错误:

Cannot instantiate the type A

的原因是;你不能创建抽象类的对象。有没有其他方法可以加载一些测试值?

+3

也许你应该只是做'A' _不抽象? –

+0

是的,但这只是为了测试目的..我只需要加载一些数据,看看它是否工作。我也会在项目中保留这个测试类来运行未来的测试用例 –

+0

那么,如果且仅当子类需要实现更多方法,或者如果您想使其无法实例化时,才会创建类抽象。这在哪里适用? –

回答

6

抽象类不能被实例化。您应该阅读this以更好地理解它。

您可以扩展您的抽象类或使其非抽象。

+0

是的,我了解它,并在我的帖子中提到它。我想知道一个解决方法来加载一些测试数据 –

+2

@sharonHwk哪部分*您可以扩展您的抽象类或使它非抽象*需要更多解释来解决您的问题? –

0

我相信你要做的是构建一个新的类。在这种情况下,所有你需要做的是这样的:

public class Aclass { 

    private String name; 

    public Aclass(String name) { 
     this.name = name; 
    } 
} 
+0

我不想公开。它应该保持为抽象的...然后我将创建一个测试类,并尝试加载一些测试数据 –

+0

在这种情况下,kosklain的答案是最好的。 – MooseElkingtons

0

尝试扩展类.....

公共类B扩展A {