데브허브 | DEVHUB | C# for Beginners – Lesson 15: Inheritance, Polymorphism & AbstractionC# for Beginners – Lesson 15: Inheritance, Polymorphism & Abstraction
- 캡슐화는 접근 제어자, 게터/세터, 속성을 통해 데이터 접근을 제어하고 코드 구조를 체계화하는 OOP의 기본 원칙입니다. 🔒
- 상속은 부모 클래스(기반 클래스)를 정의하고 자식 클래스가 이를 상속받아 일반적인 코드와 데이터를 재사용하며, 특정 기능을 강제하지 않고 접근 권한을 부여합니다. 👨👩👧👦
- 인터페이스는 특정 '행동'이나 '기능'을 강제하는 계약인 반면, 상속은 'is-a' 관계(예: 자동차는 차량이다)를 통해 일반적인 '데이터'와 '구현'을 공유합니다. 🤝
- 자식 클래스는 부모 클래스의
public 멤버(필드, 메서드)를 자동으로 상속받아 재구현 없이 사용할 수 있습니다. 💡
- 부모 클래스의
virtual 메서드를 자식 클래스에서 override 키워드를 사용하여 자신만의 로직으로 재정의할 수 있으며, 이는 다형성의 한 형태입니다. 🔄
- C#에서는 단 하나의 부모 클래스만 상속받을 수 있지만, 여러 인터페이스를 동시에 구현하는 것은 가능합니다. ☝️
- 추상화는 '무엇을 해야 하는가'에 초점을 맞춰 필수적인 부분만 노출하고 세부 구현은 숨기는 방식으로, 미래의 확장성을 고려한 구조를 만듭니다. 🏗️
abstract 키워드를 사용하여 추상 클래스를 정의하고, 이 안에 구현 없는 추상 메서드를 포함하여 자식 클래스에서 반드시 구현하도록 강제합니다. 👻
- 추상 클래스는 상속과 인터페이스의 혼합 형태로, 공통적인 구조를 제공하면서도 특정 메서드의 구현을 자식 클래스에 위임하여 유연성을 확보합니다. 🧩