Programming Languages/Java

[자바/Java] 오버라이딩 (Overriding)

Jesse 2021. 3. 23. 00:30

오늘은 자바의 오버라이딩에 대해서 공부 해봤습니다.

오버라이딩이란?

  • 조상 클래스로부터 상속 받은 메소드의 내용을 자식 클래스에서 변경하는걸 뜻 합니다.

오버라이딩의 조건

  1. 오버라이딩 하는 메소드의 이름이 같아야 한다.
  2. 메소드의 매개변수(parameter)가 같아야 한다.
  3. 메소드의 리턴 타입도 같아야 한다.

그럼 어떤 경우에 오버라이딩이 사용 되는지 알아 보도록 하겠습니다.

Point라는 클래스인데요. 일직선에서 한 점을 뜻하는 클래스 입니다.

여기서 getLocation()이라는 메소드는 일직선에서 점의 위치를 x값으로 나타내고 있는데요.

이 메소드를 오버라이딩 해보겠습니다.

 

위의 Point 클래스를 상속 받은 Point2D라는 자식 클래스 입니다.

Point 클래스가 일직선에서 위치를 나타내는 1차원 좌표 클래스 였다면

Point2D 클래스는 말 그대로 2차원입니다.

x값 뿐만 아니라 y값도 있습니다.

그래서 super.getLocation()으로 부모 클래스인 Point 클래스의 getLocation()을 불러서

x값을 나타내게 했고 거기에 Point2D 클래스에서 추가적으로 필요한

y값을 추가해서 리턴 하도록 했습니다.

마지막은 3차원에서의 좌표를 나타내는 Point3D 클래스 입니다.

x값, y값에 이어서 여기선 z값이 추가 되었습니다.

이 Point3D 클래스는 Point2D 클래스를 상속 받았기 때문에

super.getLocation()을 사용해서 좌표의 x값과 y값을 표현하고

끝에 z값만 추가해서 3차원에서 필요한 x,y,z 3가지 값을 모두 나타낼수 있습니다.