나는이 클래스들을 가지고있다;JComponent까지 확장되는 클래스에서 상속받지 않는 클래스
public class Car extends JComponent {
}
public class Mazda extends Car {
}
public class Subaru extends Car {
}
내 차 클래스에서 나는 방법 페인트 구성 요소
@Override
public void paintComponent(Graphics g) {
//why my planets aren't painted by this method
if (this instanceof Mazda) {
g.fillOval(0, 0, this.getWidth(), this.getHeight());
System.out.println(this.getClass());
}
if (this instanceof Subaru) {
g.setColor(Color.blue);
g.fillOval(0, 0, this.getWidth(), this.getHeight());
System.out.println(this.getClass());
}
}
그것은 잘 마쓰다의 인스턴스를 그립니다하지만, 스바루의 인스턴스에 대한 코드가 방금 전화 결코 극복을 우선합니다. Subaru가 Jcomponent를 Car에서 상속받지 못하는 것 같습니다. 또는 painComponent를 호출하지 않는 이유는 무엇입니까? 자바를 처음 접했을 때 나는 아마도 기본적인 것을 놓쳤을 것입니다.
왜'Mazda'와'Subaru'에서'paintComponent'를 오버라이드하지 않습니까? –
나는 마즈다 코드 만 노력했지만 스바루에서는 그렇지 않았다. 나는 자동차에서도 추상화를 시도했지만 운이 없었다. –
인스턴스는 어떻게 추가됩니까? –