[ 상속 ]
기존의 클래스(상위 클래스) 를 확장하거나 재사용하여 새로운 클래스(하위 클래스) 를 생성
자식 클래스는 부모 클래스의 멤버(필드, 메서드, 프로퍼티 등)를 상속받아 사용
C#에서 다중 상속은 불가능
[ 다형성 ]
다형성은 가상 메서드와 같은 의미로 볼 수 있다.
부모 클래스에서 정의되고 자식 클래스에서 재정의할 수 있는 메서드
가상 메서드는 virtual 키워드를 사용하여 선언되며, 자식 클래스에서 필요에 따라 override로 재정의될 수 있다.
[ 오버라이딩 ]
- 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 재정의하는 것을 의미 ( 위 사진에서 사용 )
- 이는 상속 관계에 있는 클래스 간에 발생하며, 메서드의 이름, 매개변수 및 반환타입이 동일해야만 함
- 오버라이딩을 통해 자식 클래스는 부모 클래스의 메서드를 재정의하여 자신에게 맞는 동작을 구현
버츄어와 오버라이딩을 사용하지 않아도 구현이 잘 된 것처럼 보이는 상황이 있다.
하지만 문제의 지점은 마린과 저글링을 부모의 형태로 관리하는 상황이다. ex) 100마리 이상의 마린과 저글링
[ 오버로딩 ]
- 동일한 메서드 이름을 가지고 있지만, 매개변수의 개수, 타입 또는 순서가 다른 여러 개의 메서드를 정의
- 오버로딩을 통해 동일한 이름을 가진 메서드를 다양한 매개변수 조합으로 호출
[ 추상 클래스 ]
- 직접적으로 인스턴스를 생성할 수 없는 클래스
- 주로 상속을 위한 베이스 클래스로 사용
- abstract 키워드를 사용하여 선언되며, 추상 메서드를 포함할 수 있음
- 구현부가 없는 메서드로, 자식 클래스에서 반드시 구현되어야 함
- 인터페이스와는 다르게 단일 상속만 가능
'C# > Knowledge' 카테고리의 다른 글
인터페이스 , 열거형 enums (0) | 2024.04.29 |
---|---|
제너릭 (0) | 2024.04.29 |
클래스 & 객체지향 프로그래밍 (0) | 2024.04.28 |
구조체 (0) | 2024.04.25 |
메서드 (0) | 2024.04.25 |