2011-12-29 3 views
0

Java 클래스가 "확장"으로 상속하는 것에 약간 혼란 스럽습니다. 나는 "Shape"라는 클래스와 box, circle 같은 여러 클래스를 가지고 있습니다. 상자, 원 등은 모두 세 가지 변수가 있습니다. Shape 클래스는 정적 수를 유지하여 클래스 수를 계산하는 데 필요합니다. 나는 또 다른 클래스의 도형 벡터를 가지고있다. 내가 원형 클래스를 선언하면 모양 벡터에 정확하게 맞출 것입니까? 내가 거기 인터페이스는하지만 카운트 필요로하고, 벡터가 구현 클래스를 받아 들일 것입니다 인터페이스 구성되어한다면 그들은 정적 바르를 포함 할 수 있습니다 알고Java 클래스 확장

Shape shape = new Circle(); 
ShapeVector.add(shape); 

: 나는 또한 내가 이런 일을 할 수있는 발견?

나는 인터페이스, 추상 클래스 등을 사용해 보았지만 테스트 할 수있는 조합이 너무 많아서 질문하는 것보다 훨씬 오래 걸릴 것이라고 생각합니다.

+1

'내가 거기 테스트하기 위해 너무 많은 조합이하고, 잘 question.'을 물어보다 훨씬 더 오래 걸릴 것이다 실제로보다 실시간으로 할 더 효과적 일 것이라고 생각 질문을하십시오. – Nishant

+0

'shapeVector'는'Vector '이 될 수 있습니다. 너 필요한거야? – Vaandu

+2

귀하의 질문은 무엇입니까? –

답변

1

이 필요합니다

package naishe.so.shapes; 

import java.util.Vector; 

public abstract class Shapes { 
    private static int counter = 0;//Not really required, you could just count vector length 
    private static final Vector<Shapes> shapesVector = new Vector<Shapes>(); 

    public Shapes() { 
     counter++; 
     shapesVector.add(this); 
    } 

    public Vector<Shapes> getAllShapes(){ 
     return shapesVector; 
    } 

    public int getCount(){ 
     return counter; 
    } 
}