구현 단계에서 인터페이스와 상속이 작동하는 방식에 약간 혼란스러워집니다. 다음은 빠른 ERD입니다.인터페이스 및 상속 구현
그래서 여기에 Animal 클래스를 확장 한 개가 있고 ColorChangable 인터페이스도 구현됩니다. 이제 colorchangeable 인터페이스의 작업은 Dog가 아닌 animal에 속한 속성 인 색상을 업데이트하는 것입니다. 그렇다면 개 클래스의 색상을 업데이트하는 올바른 방법은 무엇입니까? 동물이 아닌 색을 구현하는 개입니다. 지금은이 있습니다
public class Dog extends Animal implements IColorChangable
{
private String breed;
public Dog(int color, String breed)
{
super(color);
this.breed = breed;
}
public void changeColor()
{
//How to have access to color?
}
}
public interface IColorChangable
{
public void changeColor();
}
매우 사실이지만 질문은 아닙니까? – KJ3
죄송합니다. 수정했습니다. –
'setColor'와'getColor'는'public' 일 필요는 없습니다. 상황에 더 적절한 경우'protected' 될 수 있습니다. 또한 getter를 사용하는 것이 일반적으로 많은 의미를 갖지만, 이것이 작동하려면 반드시 필요한 것은 아닙니다. 더 깊은 레벨에서'Animal'이'color'를 가졌다면,'Animal'이'IColorChangable'을 구현할 것인가를 고려해 볼 가치가 있습니다. –