본문으로 건너뛰기
Advertisement

7.1 상속과 다형성 개요 (Inheritance & Polymorphism Overview)

안내: 이 가이드는 Java 21 버전을 기준으로 작성되었습니다. 최신 정보는 공식 Java Documentation에서 확인할 수 있습니다.

지금까지 클래스와 객체의 기본 개념에 대해 알아보았습니다. 이번 장에서는 객체지향 프로그래밍(OOP, Object-Oriented Programming)의 핵심이자 진수인 상속(Inheritance)과 다형성(Polymorphism), 그리고 ** 추상화(Abstraction)**와 ** 캡슐화(Encapsulation)**에 대해 자세히 다루겠습니다.

이 네 가지 개념은 자바뿐만 아니라 대부분의 현대적인 프로그래밍 언어에서 매우 중요하게 다뤄지며, 재사용성이 높고 유지보수가 쉬운 좋은 코드를 작성하는 기반이 됩니다.

객체지향 프로그래밍의 4대 특징

객체지향 설계와 구현은 다음 4가지 강력한 기둥에 의해 지탱됩니다:

  1. 상속 (Inheritance)

    • 기존 객체(클래스)의 특성을 부모에게서 물려받아 새로운 객체를 쉽게 생성하는 개념입니다.
    • 코드의 재사용성을 높이고 중복을 줄이는 데 크게 기여합니다. (예: 참새의 모든 성질을 상속받으면서 자신만의 특징을 추가할 수 있습니다.)
  2. 다형성 (Polymorphism)

    • 하나의 객체나 메서드가 상황에 따라 여러 가지 형태 를 가질 수 있는 성질을 의미합니다.
    • 같은 이름의 메서드를 호출하더라도 객체의 실제 타입에 따라 다르게 동작하도록 설계하여 시스템의 유연성을 극대화합니다. 오버로딩(Overloading)과 오버라이딩(Overriding)이 여기에 속합니다.
  3. 추상화 (Abstraction)

    • 복잡한 현실 세계의 사물이나 개념에서 불필요한 세부 사항은 숨기고, 가장 핵심적이고 공통적인 속성과 기능만 추출 하여 모델링하는 과정입니다.
    • 추상 클래스(Abstract Class)나 인터페이스(Interface)를 통해 구현됩니다.
  4. 캡슐화 (Encapsulation)

    • 객체의 속성(변수)과 행위(메서드)를 하나의 묶음(클래스) 안에 캡슐처럼 감싸고, 외부의 무분별한 접근으로부터 내부 데이터를 보호(정보 은닉)하는 개념입니다.
    • 접근 제어자(public, private 등)를 통해 구현합니다.

이번 장에서 배울 내용

여러분은 이번 장을 통해 수천, 수만 줄의 거대한 프로젝트를 체계적이고 유연하게 레고 블록 조립하듯 개발하는 방법을 터득하게 될 것입니다.

  • 7.2 상속: extends 키워드와 부모 클래스, 자식 클래스의 관계
  • 7.3 다형성: 오버라이딩(@Override), 참조 변수의 형변환, 다형성의 활용
  • 7.4 추상화와 인터페이스: abstract 키워드, interfaceimplements
  • 7.5 캡슐화와 접근 제어자: 데이터 보호와 getter/setter 메서드의 활용

객체지향의 꽃이라 불리는 챕터 7을 통해 한 단계 더 성장한 자바 개발자가 되어 봅시다!

Advertisement