클래스의 상속과 다형성 (iOS 앱 개발)

개발자의 일상, @munondio 팔로우 해보세요!

이번 글에서는 객체지향 프로그래밍의 주요 특징인 상속성과 다형성에 대해서 조금 더 자세히 살펴보겠습니다.

클래스의 상속

클래스의 상속은 Subclassing이라고도 하는데요. 기존에 구현 되어있는 클래스를 확장하고 변형하는 것을 말합니다. 부모 클래스와 자식 클래스로 관계를 표현하고, 상속을 하면 할 수록 더욱 확장되는 구조를 갖고 있습니다.

상속하는 방법

클래스의 상속은 다음과 같이 콜론뒤에 상속할 클래스명을 적어서 수행할수 있습니다.

class UniversityStudent: Student
{
    
}

상속 관계 예시

swift-class-inheritence

다형성

객체지향 프로그래밍의 다형성은 주로 오버라이딩과 오버로딩을 의미합니다.

오버라이딩

오버라이딩이란 부모 클래스에게서 상속 받은 메서드를 그대로 사용하지 않고, 자식 클래스에 맞게 변경하여 사용하는 것입니다.

예를들어, 위 상속 관계 예시 사진에서. Person 클래스의 eat 메서드는 집밥을 먹게 하고, Student 클래스의 eat 메서드는 급식을 먹게하고, UniversityStudent 클래스의 eat 메서드는 학식을 먹게 하는 것입니다.

오버로딩

오버로딩은 같은 이름의 함수를 매개변수에 따라 다양하게 구현하는 것을 의미합니다. 예를들어, add라는 같은 이름의 함수라고 해도. 입력 받는 매개변수의 갯수에 따라 다르게 구현할 수 있는 것이죠.