이의 내가 부모 추상 동물 트레이너 클래스를 가지고 있다고 가정 해 봅시다 자체 내에서 정의 된 열거 형을 사용하는 . 나는 구체적인 개 트레이너가 있다면 그래서 다음과 같이 : 나는 단지 DogTrainer.Tricks
유형의 매개 변수에 대한 trainingComplete
을 할 수 DogTrainer
의 최신 정의강제 아이들은
public class DogTrainer extends Trainer<Dog, DogTrainer.Tricks>{
public enum Tricks implements Trainables {
FETCH, GROWL, SIT, HEEL;
}
}
합니다. 그러나 구체적인 내용을 작성하는 사람은 누구나 Trainer
이 자체 내에서 정의하는 Trainables
에 대해 trainingComplete()
을 허용해야한다고 강조하고 싶습니다. 내가 다른 트레이너가 있다면 즉
, 나의 현재 디자인의 문제는 다음과 같다 :
public class PoliceDogTrainer extends Trainer<Dog, PoliceDogTrainer.Tricks>{
public enum Tricks implements Trainables {
FIND_DRUGS, FIND_BOMB, FIND_BODY;
}
}
개, 경찰 트릭을 가르 칠하려고 다른 루즈 트레이너를 정의에서 사람을 방지 아무것도 없다 :
public class RougeTrainer extends Trainer<Dog, PoliceDogTrainer.Tricks>{
...
}
나는 이것을 금지하고 확장 클래스가 그들 자신이 지정한 유일한 Trainable을 사용할 수있게하고 싶다.
어떻게하면됩니까?
나는 이것도 내 솔루션에 의해 해결 된 것 같아요 : [이전 질문] (http://stackoverflow.com/questions/19435006/force-children-to-use-enums-defined-within-themselves). – anishthecoder