2012-03-19 4 views
0

나는 데이터와 논리가있는 클래스 과일을 가지고있다.데이터에 대한 상속?

이제 이름, 비트 맵 및 기타 다른 데이터 만 다른 여러 가지 과일이 필요합니다.

과일마다 새로운 하위 클래스를 만드는 데 의미가 있습니까? 그들은 모두 과일과 관계가 있습니다. 그러나 그들은 새로운 행동이나 장을 추가하지 않습니다.

"유형"필드를 하위 클래스 화하는 대신에 제공하는 것이 더 좋을 수도 있습니다. 그게 뭐 잘못 됐니?

답변

2

어떤 종류의 과일을 구별하려고합니까? 방금 타자를 친다면 필자는 기본 클래스 (이 경우 fruit)에 정의 된 열거 형 목록에서 enum 값을 사용하는 경향이 있으며 상속 클래스의 생성자에서 전달되거나 초기화됩니다. 내가 제대로 이해한다면

예를 들어

class Fruit 
{ 
    public: 
    enum Type { SPIKEY, RED, ROUND, SQUISHY }; 

    Fruit(Type type) 
    { 
     mType = type; 
    } 

    protected: 
    Type mType; 

}; 

그냥 이름 등을 위해

+0

이 kasavbere의 대답처럼하지만 열거 형 값입니다. 같은 코멘트. – Ixx

2

하나의 클래스를 생성자의 특정 값을 정의 할 수는 충분하다. 초기화시 이름이 전달 될 수 있습니다.

public class Fruit{ 
    String name; 
    ...//bit map, etc 
    public Fruit(String name, ...){ 
     this.name=name; 
     ...//bit map 
    } 
} 

사용자 클래스 :

Fruit apple = new Fruit("apple", ...); 
+0

예,이 방법에 문제가있는 경우 질문이 있습니다.하지만 맞는 것 같습니다. 그렇지 않으면 나는 데이터 때문에 단지 50+ 클래스를 얻었고 그것은 의미가 없습니다. – Ixx

+0

좋은 답변은 +1 이었지만 다른 하나는 처음이었습니다. – Ixx

관련 문제