본문 바로가기
정보처리기사/[최신] 실기 개념

정보처리기사 정처기 | 오버라이딩(Overriding) | 필기&실기 개념

by YUNI Heo 2024. 1. 7.
반응형

⭕ 오버라이딩(Overriding) 

오버라이딩(Overriding)은 자식 클래스가 부모 클래스로부터 상속받은 메서드를 자신의 필요에 맞게 재정의하는 프로그래밍 개념입니다. 이는 객체 지향 프로그래밍의 다형성 중 하나로, 동일한 메서드 이름을 가진 메서드를 여러 클래스에서 서로 다르게 구현할 수 있도록 합니다.

 

➡️ 오버라이딩 조건

오버라이딩하기 위해서는 다음 조건을 만족해야 합니다.

  • 메서드 이름이 부모 클래스와 동일해야 합니다.
  • 매개변수의 개수와 타입이 부모 클래스의 메서드와 동일해야 합니다.
  • 접근 제어자는 부모 클래스의 메서드와 같거나 더 넓은 범위로 설정되어야 합니다.
  • 부모 클래스의 메서드가 final 키워드로 선언되지 않아야 합니다.

 

➡️ super 키워드

  • 오버라이딩된 메서드에서 super 키워드를 사용해 부모 클래스의 메서드를 호출할 수 있습니다.
  • 리턴 타입이 반드시 같아야 하며, 부모 클래스의 메서드와 예외 처리도 동일해야 합니다.

 

⭕ [예시] 

➡️ 2023년도 3회 실기 기출 - 1. [JAVA 코드] 알맞은 출력 값을 작성하시오.

public class Main {
  public static void main(String[] args) {
    Parent childInstance = new Child();
    childInstance.paint();
    childInstance.draw();
  }
}

class Parent {
  public void paint() {
    System.out.print("A");
    draw();
  }

  public void draw() {
    System.out.print("B");
    draw();
  }
}

class Child extends Parent {
  public void paint() {
    super.draw();
    System.out.print("C");
    this.draw();
  }

  public void draw() {
    System.out.print("D");
  }
}

정답

BDCDD

해설

주어진 JAVA 코드에서 Parent 클래스와 Child 클래스 간에 오버라이딩이 발생하고 있습니다. 오버라이딩은 하위 클래스에서 상위 클래스의 메서드를 재정의하는 것을 의미합니다.



1. main 메서드에서는 Child 클래스의 인스턴스를 생성하고, 이를 Parent 클래스 타입의 변수인 childInstance에 할당합니다.

Parent childInstance = new Child();

2. 그 후, paint 메서드가 호출됩니다. 현재 참조되는 객체는 Child 클래스의 객체이므로, Child 클래스의 paint 메서드가 실행됩니다. 이때 super.draw()를 통해 부모 클래스인 Parent 클래스의 draw 메서드가 호출되어 "B"가 출력됩니다. 이어서 "D"와 "C"가 출력되고, 현재 클래스의 draw 메서드가 호출되어 "D"가 출력됩니다.


3. 마지막으로 Child 클래스의 draw 메서드가 실행되어 "D"가 출력됩니다.


 

 

[정보처리기사/[최신] 실기 기출] - [2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

 

[2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

⭕ [2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리 ➡️ 1. [JAVA 코드] 알맞은 출력 값을 작성하시오. public class Main { public static void main(String[] args) { Parent p = new Child(); p.paint(); p.draw();

sugoring-it.tistory.com

반응형