Override, Super


  • 서브클래스에 대한 메소드, 프로퍼티, 또는 서브스크립트에 대한 override(재정의) 기능을 제공하는 경우에는 종종 override 의 일부로 기존 상위 클래스 구현을 사용하는 것이 유용하다
    • 예를들어, 기존 구현의 동작을 개선하거나, 수정된 값을 기존 상속된 변수에 저장할 수 있다
    • 상위 클래스의 값이 “적절하다고 생각 혹은 꼭 상위 클래스의 값”을 사용해야 한다라고 하면 super라는 접두어를 사용하여 메소드, 프로퍼티 또는 서브스크립트의 슈퍼클래스 버전에 접근이 가능하다
      • 예를들어 someMethod()라는 override된 메소드가 있는데 이 메소드 안에 여러 멤버들이 있다, 이러한 멤버들 중 override를 통해 값을 수정하거나 동작을 개선할 수 있는데 슈퍼 클래스가 구현한 동작이나 값을 그대로 사용 혹은 가져다 사용하고 싶을때 super를 사용하여 가져다가 사용 할 수 있다
        override func someMethod() {
            var name = "Jun"
            super.age
        }
      
      • 위의 예시를 봤을때 someMehod를 재정의하여 이전의 원래 값이 무엇인지 모르겠지만 name 값을 “Jun”으로 재정의 하였다, 그러나 age의 값은 재정의 하기 전 슈퍼클래스의 age 값을 그대로 가져와 사용하려해서 age 프로퍼티 앞에 접두어로 super.을 붙여서 Super Class의 age 프로퍼티의 값을 그대로 차용하엿다