상속과 오버라이딩 (Overriding)

Tech/Java 2022. 12. 4. 14:38
728x90
728x90

오버라이딩

  • 부모 클래스에서 상속받은 메서드를 자식 클래스에서 재정의하는 것
  • 오버라이딩하고자 하는 메서드의 이름, 매개변수, 리턴 값이 모두 같아야 한다
  • 필드는 오버라이딩이 불가능하다

상속

  • 상위 클래스의 필드와 메서드를 물려받아 하위 클래스가 가져감
  • 두 개 이상의 클래스를 직접적인 관계를 형성하여 불필요한 필드와 메서드의 선언을 최소화
  • 자식 클래스에서 오버라이딩하는 메서드의 접근제어자는 부모 클래스보다 더 좁게 설정할 수 없다
class Parent {

    void display() {
    	System.out.println("부모 클래스의 display() 메소드입니다.");
    }
}

class Child extends Parent {

    void display() {
    	System.out.println("자식 클래스의 display() 메소드입니다.");
    }
}


public class Example {

    public static void main(String[] args) {

        Parent pa = new Parent();
        pa.display();

        Child ch = new Child();
        ch.display();

        Parent pc = new Child();
        pc.display();

    }
}

// Console
// 부모 클래스의 display() 메소드입니다.
// 자식 클래스의 display() 메소드입니다.
// 자식 클래스의 display() 메소드입니다.

 


super

  • 부모 클래스의 필드에 접근할 때 사용
  • 자식 클래스에서 부모 클래스의 재정의도 가능하다
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

방명록