2012-11-11 2 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가 {