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 Inheritance  (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.