메소드 오버라이딩

이규은·2021년 10월 5일
0

상속

목록 보기
3/6

자삭 클래스는 부모 클래스의 private를 제외한 모든 메소드를 상속 받는다. 상속받은 메소드는 그대로 사용해도 되고 필요한 동작을 위해 제정의하여 사용할 수도 있다.
메소드 오버라이딩이란 상속 받은 부모 클래스의 메소드를 재정의하여 사용하는 것을 의미한다.

오버라이딩 조건

  1. 메소드의 동작만을 재정의 하는 것이므로 메소드의 선언부는 기존 메소드와 같아야한다.
    하지만 메소드의 반환 타입은 부모 클래스의 반환 타입으로 타입 변환할 수 있다면 변경할수 있다.
  2. 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없다.
  3. 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없다.

class Parent {
    void print() {
        System.out.println("부모 클래스");
    }
}

class Child extends Parent {
    void print() {
        System.out.println("자식 클래스");
    }
}

public class InheritanceStudy {
    public static void main(String[] args) {
        Parent parent = new Parent();
        parent.print();

        Child child = new Child();
        child.print();

        Parent  parent1 = new Child();
        parent1.print();
    }
}

결과

profile
안녕하세요

0개의 댓글