오버라이딩, 클래스 형변환

Jiwontwopunch·2022년 1월 12일
0

독학

목록 보기
28/102
post-thumbnail

오버라이딩

오버라이딩overriding이란 부모가 가진 메서드와 똑같은 모양의 메서드를 자식이 가지는 것을 말한다. 부모가 물려준 메서드를 자식 클래스에서 재정의해 사용하는 것이 오버라이딩.

package javastudy;

public class Van extends Car {
 public void run() {
  super.run();
  System.out.printIn("Van의 run 메서드");
  }
}
// Car의 run 메서드
// Van의 run 메서드

자식 클래스에서 run 메서드를 호출하면 자식이 가진 run 메서드만 호출된다. 이때 super 키워드는 자식이 부모의 메서드 나 필드를 사용할 때도 쓸 수 있다.

클래스 형변환

형변환은 두 가지만 생각하면 된다.
1. 묵시적(암묵적) 형변환 : 더 큰 그릇에 작은 그릇의 값을 담는 경우 → 컴파일러는 오류를 발생시키지 않고, 형을 바꿔준다.
2. 명시적 형변환 : 작은 그릇에 큰 그릇의 값을 담는 경우 → 오류 발생

package javastudy;

public class VanExam {
 public static void main(String[] args) {
   Car c = new Van();
   c.run();
   c.ppangppang(); // 부모 타입을 가리키고 있어서 사용할 수 없다
  }
}

컴파일러 입장에서 c는 Car형이기 때문에 그보다 작은 Van형이 가리킬 수는 없다. Car는 Van보다 상위 개념이다.
Van van = (Van)c 이렇게 강제로 형변환을 해준다...형변환으로 객체가 가진 모든 부분을 사용한다.

0개의 댓글