상속, 다형성, 캡슐화

기술노트

👨‍👩‍👧‍👦 상속, 다형성, 캡슐화

상속, 다형성, 캡슐화는 객체 지향 프로그래밍(OOP)의 3가지 핵심 특징입니다. (여기에 추상화를 더해 4가지 특징으로 보기도 합니다.) 이 개념들을 통해 코드의 재사용성, 유연성, 유지보수성을 높일 수 있습니다.


👨‍👩‍👧‍👦 상속 (Inheritance)

상속은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받아 사용할 수 있게 하는 기능입니다. 코드의 중복을 줄이고 재사용성을 높입니다.

  • 관계 : 'is-a' 관계 (A는 B의 한 종류이다) (예: `개`는 `동물`이다)
  • 장점 : 코드 재사용, 유지보수 용이
  • 단점 : 부모-자식 간의 강한 결합

🎨 다형성 (Polymorphism)

다형성은 하나의 인터페이스나 부모 클래스를 사용하여 여러 다른 타입의 객체를 동일한 방식으로 다룰 수 있는 능력을 의미합니다. '여러(Poly) 형태(Morph)'를 가질 수 있다는 뜻입니다.

  • 종류 :

> * 오버라이딩 (Overriding) : 부모 클래스의 메서드를 자식 클래스에서 재정의 > * 오버로딩 (Overloading) : 같은 이름의 메서드를 매개변수만 다르게 여러 개 정의

  • 장점 : 코드의 유연성, 확장성 향상

📦 캡슐화 (Encapsulation)

캡슐화는 데이터(속성)와 데이터를 처리하는 함수(메서드)를 하나로 묶고, 객체의 실제 구현 내용을 외부에 감추는 것을 의미합니다. 외부에서는 객체가 제공하는 메서드를 통해서만 데이터에 접근할 수 있습니다.

  • 목적 : 데이터 보호, 데이터 무결성 보장, 유지보수성 향상
  • 구현 : 필드를 `private`으로 선언하고, `public` Getter/Setter 메서드를 제공

💡 정보처리기사 핵심 Point

  • 정보처리기사 시험에서는 객체 지향 프로그래밍의 핵심 특징 3가지(상속, 다형성, 캡슐화)의 개념과 역할을 묻는 문제가 자주 출제됩니다. (추상화 포함 4가지)
  • 각 특징의 정의와 함께, 실제 코드 예시를 통해 어떻게 구현되는지 이해하는 것이 중요합니다.
  • 특히 오버로딩과 오버라이딩의 차이점을 명확히 구분해야 합니다.