반응형
Code
// Circle과 Shape는 상속관계
public class Circle extends Shape {
Point center; //Circle과 Point는 포함관계
int r;
...
}
public class Shape{
String color = "black";
void draw{{
System.out.printf("[color=$s]%n", color);
}
}
위와같이 Circle 클래스는 Shape 클래스로부터 멤버를 상속 받았기 때문에 Shape클래스에 정의된 color나 draw()를 사용할 수 있다.
그러나 Circle 클래서에도 draw()가 정의되어 있다. 그러면 둘 중에 어떤 것이 호출되는 것일까? 이미 결과를 통해 할 수 있듯이 Circle클래스의 draw()가 호출된다.
public class Circle extends Shape{
void draw{
System.out.printf("[center=(%d, %d), r=%d, color$s]%n",
center.x, center.y, r, color);
}
}
이처럼 조상 클래스에 정의된 메서드와 같은 메서드를 자손 클래스에 정의하는 것을 '오버라이딩'이라고 하며 자세한 설명은 추후에 할 예정이다.
그리고 Circle인스턴스를 생성하는 문장인데,
Circle c = new Circle(new Point(150, 150), 50);
위 문장이 복잡해 보이지만 아래의 무장을 한 줄로 작성한 것이다.
Point p = new Point(150, 150);
Circle c = new Circle(p, 50);
반응형
'언어 공부 > JAVA' 카테고리의 다른 글
Java의 5대 핵심 개념과 예시로 알아보는 자바 프로그래밍 (0) | 2023.11.24 |
---|---|
JAVA/innerClass (0) | 2022.05.17 |
JAVA/DTO test code (0) | 2022.05.15 |
JAVA/CLASS (0) | 2022.05.11 |
JAVA/생성자 (0) | 2022.05.11 |
최근댓글