반응형
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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기