[Java] Overriding

정석·2023년 12월 13일

Java

목록 보기
6/39
post-thumbnail

오버라이딩

  • 하위 클래스가 부모 클래스의 기본적인 동작방법을 변경할 때 사용
    -> 상위 클래스의 메소드를 추가하거나 변경하는 경우

▶︎ 상위 클래스

class Calculator {
   int left, right;

   public void setOprands(int left, int right) {
       this.left = left;
       this.right = right;
   }

   public void sum() {
       System.out.println(this.left + this.right);
   }
}   

Calculator 라는 클래스에서 sum 이라는 메소드를 실행하면 두개의 데이터를 더하는 구조다.

만약, 하위 클래스에서 sum 메소드에 기능을 추가하여 사용하고 싶을 경우 아래와 같이 Overriding 한다.

▶︎ 하위 클래스

class SubstractionableCalculator extends Calculator {
    
   public void sum() {
       System.out.println("실행 결과는 " +(this.left + this.right)+"입니다.");
   }

sum 메소드에 실행결과에 대한 문장이 같이 출력되도록 변형된 것을 볼 수 있다.

이와 같이 하위 클래스에서 상속 받은 상위 클래스의 메소드를 변경할 때 오버라이딩을 사용하는데 몇가지 규칙이 존재한다.

1. 메소드 이름

  • 부모 클래스의 메소드 이름과 오버라이딩된 메소드 이름이 동일해야 함.

2. 메소드 매개변수의 수와 데이터 타입

  • 메소드 매개변수의 식이 같아야 함.

3. 메소드 리턴 타입

  • 부모 클래스의 메소드와 오버라이딩된 메소드의 리턴 타입이 동일해야 함.

0개의 댓글