非専門家のSWIFT基礎文法-final


final

  • 過剰使用防止(再定義)
  • 財政・相続を防ぎたいものの前でfinal貼る
  • final varfinal funcfinal class
  • class Person {
        final var name: String = ""
        
        final func speak() {
            print("가나다라마바사")
        }
    }
    
    final class Student: Person {
        override var name: String {
            set {
                super.name = newValue
            }
            get {
                return "학생"
            }
        } // Person의 name은 final을 사용했기 때문에 재정의할 수 없다.
        
        override func speak() {
            print("학생입니다.")
        } // Person의 speak은 final을 사용했기 때문에 재정의할 수 없다.
    }
    
    class UniversityStudent: Student {} // Student는 final을 사용했기 때문에 상속받을 수 없다.