[Java] 메소드 오버라이딩

최대 1 분 소요

메소드 오버라이딩


메소드 오버라이딩

메소드 오버라이딩은 상속된 메소드를 자식 클래스에서 재정의하는 것을 말한다.
메소드 오버라이딩되었다면 해당 부모 메소드는 숨겨지고, 자식 메소드가 우선적으로 사용된다.

메소드 오버라이딩할 때는 다음과 같은 규칙에 주의해서 작성해야 한다.

  • 부모 메소드의 선언부(리턴 타입, 메소드 이름, 매개변수)와 동일해야 한다.
  • 접근 제한을 더 강하게 오버라이딩할 수 없다(public → private으로 변경 불가)
  • 새로운 예외를 throws할 수 없다
package ch07.sec04.exam01;

public class Calculator {
    //메소드 선언
    public double areaCircle(double r){
        System.out.println("Calculator 객체의 areaCircle() 실행");
        return 3.14159*r*r;
    }
}

package ch07.sec04.exam01;

public class Computer extends Calculator{
    //메소드 오버라이딩
    @Override // 컴파일 시 정확히 오버라이딩이 되었는지 체크해 줌 (생략 가능)
    public double areaCircle(double r){
        System.out.println("Computer 객체의 areaCircle() 실행");
        return Math.PI*r*r;
    }
}

package ch07.sec04.exam01;

public class ComputerExample {
    public static void main(String[] args) {
        int r = 10;

        Calculator calculator = new Calculator();
        System.out.println("원 면적: "+calculator.areaCircle(r));
        System.out.println();

        Computer computer = new Computer();
        System.out.println("원 면적: "+computer.areaCircle(r));
        System.out.println();
    }
}


  • 출처: 이것이 자바다

카테고리:

업데이트:

댓글남기기