상속 · 다형성 · 추상 클래스

최병현·2025년 12월 18일

java

목록 보기
10/38
post-thumbnail

오늘 배운 핵심 개념

오늘은 객체지향의 핵심 개념인 상속, 다형성, 추상을 학습했다. 기존에 사용하던 객체와 메소드 개념이 확장되면서, “코드를 재사용하고 구조를 유연하게 만드는 방법”에 집중하는 수업이었다.


2. 상속(Inheritance)

상속은 기존 클래스의 필드와 메소드를 그대로 물려받아 사용하는 개념이다.

공통 기능을 부모 클래스에 두고, 자식 클래스는 필요한 기능만 추가하거나 수정할 수 있다.

  • extends 키워드를 사용한다
  • 중복 코드를 줄일 수 있다
  • 부모 클래스의 기능을 그대로 재사용 가능

상속은 “is-a 관계”일 때 사용하는 것이 가장 적절하다.


3. 다형성(Polymorphism)

다형성은 부모 타입의 변수로 자식 객체를 다룰 수 있는 성질이다.

같은 메소드 호출이라도, 실제로 실행되는 메소드는 객체의 실제 타입에 따라 달라진다.

  • 부모 타입 = 자식 객체 가능
  • 메소드 오버라이딩과 함께 사용
  • 조건문을 줄이고 코드 구조를 단순화

다형성을 사용하면 객체를 한 가지 방식으로 통일해서 다룰 수 있다.


4. 추상 클래스(Abstract)

추상 클래스는 “공통 구조는 정의하지만, 구현은 자식에게 맡기는 클래스”이다.

객체를 직접 생성할 수 없으며, 상속을 통해서만 사용된다.

  • abstract 키워드 사용
  • 추상 메소드는 구현부가 없음
  • 자식 클래스에서 반드시 구현해야 함

추상 클래스는 설계 단계에서 규칙과 틀을 강제하는 역할을 한다.


5. 오늘 배운 개념 정리

개념 역할
상속 기존 클래스를 재사용하고 확장
다형성 부모 타입으로 다양한 자식 객체 처리
추상 공통 구조를 강제하고 구현은 위임

6. 느낀 점

이전까지는 객체를 “기능 묶음” 정도로만 사용했는데, 오늘 수업을 통해 객체가 설계 단위라는 느낌이 들기 시작했다.

특히 다형성과 추상 클래스는 처음에는 어렵지만, 프로그램 규모가 커질수록 반드시 필요하다는 점을 이해했다.

앞으로는 단순 기능 구현보다 “왜 이 구조를 쓰는지”를 더 고민해봐야겠다.

profile
Develop

0개의 댓글