Swift 클래스의 상속과 다형성

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

클래스의 상속

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

상속하는 방법

  • 클래스의 상속은 다음과 같이 콜론뒤에 상속할 클래스명을 적어서 수행할수 있다.
class UniversityStudent: Student
{
    
}

상속 관계 예시

swift-inheritence-polymorphism

다형성

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

오버라이딩

  • 오버라이딩이란 부모 클래스에게서 상속 받은 메서드를 그대로 사용하지 않고,
  • 자식 클래스에 맞게 변경하여 사용하는 것이다.
  • 예를들어, 위 상속 관계 예시 사진에서.
  • Person 클래스의 eat 메서드는 집밥을 먹게 하고,
  • Student 클래스의 eat 메서드는 급식을 먹게하고,
  • UniversityStudent 클래스의 eat 메서드는 학식을 먹게 하는 것이다.

오버로딩

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