ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Swift 5.6 Inheritance
    기술/iOS 2022. 3. 20. 17:48

    Inheritance

    Defining a Base Class

    다른 클래스에서 상속하지 않은 클래스를 기본 클래스라고 합니다.

    SubClassing

    하위 클래스는 기존 클래스를 기반으로 클래스를 만드는 작업잉ㅂ니다. 하위 클래스는 기존 클래스의 특성을 상속하므로 수정할 수 있습니다. 하위 클래스에 새로운 특성도 추가할 수 있습니다.

    class SomeSubclass: SomeSuperclass {
        // subclass definition goes here
    }
    

    Overriding

    하위 클래스는 상위 클래스에서 상속할 인스턴스 메서드, 타입 메서드, 인스턴스 프로퍼티, 타입 프로퍼티, 또는 서브스크립트 자체 사용자 구현을 제공할 수 있습니다. 이것을 재정의라고 합니다.

    상속될 특성을 재정의하려면 재정의 할 정의 앞에 override 키워드를 추가합니다. 이렇게 하면 재정의를 명확하게 제공하고 실수로 일치하는 정의를 제공하지 않도록 합니다. 실수로 재정의 하면 예기치 않은 동작을 야기하고 override 키워드 없이 재정의하면 코드가 컴파일 될 때 에러를 발생합니다.

    Accessing Superclass Methods, Properties, and Subscripts

    하위 클래스에서 메서드, 프로퍼티 또는 서브스크립트 재정의를 제공할 때 재정의의 일부로 상위 클래스 구현을 사용하는 것이 유용할 때가 있습니다. 이 때 super 접두어를 통해 상위 클래스의 메서드, 프로퍼티 또는 서브스크립트에 접근할 수 있습니다.

    Overriding Methods

    class Train: Vehicle {
        override func makeNoise() {
            print("Choo Choo")
        }
    }
    

    Overriding Property Getters and Setters

    class Car: Vehicle {
        var gear = 1
        override var description: String {
            return super.description + " in gear \\(gear)"
        }
    }
    

    Overriding Property Observers

    class AutomaticCar: Car {
        override var currentSpeed: Double {
            didSet {
                gear = Int(currentSpeed / 10.0) + 1
            }
        }
    }
    

    Preventing Overrides

    final 키워드를 통해 메서드, 프로퍼티 또는 서브스크립트의 재정의를 방지할 수 있습니다.

    '기술 > iOS' 카테고리의 다른 글

    Swift 5.6 Deinitialization  (0) 2022.03.20
    Swift 5.6 Initialization  (0) 2022.03.20
    Swift 5.6 Subscripts  (0) 2022.03.20
    Swift 5.6 Methods  (0) 2022.03.20
    Swift 5.6 Properties  (0) 2022.03.20

    댓글 0

Designed by Tistory.