
자식클래스가 부모클래스로 부터 기능을 물려받는 것
단일 상속만 가능
- 승계해 주는 클래스: 부모/슈퍼/상위 클래스
 - 승계 받는 클래스 : 자식/서브/하위 클래스
 - Overriding (재정의)
 
import UIKit
// 슈퍼클래스
class Friend {
 
    var name : String
    
    init(_ name: String){
        self.name = name
    }
    
    func sayHi(){
        print("안녕?! 난 \(self.name) 라고 해")
    }
}
// 서브클래스
class BestFriend : Friend {
  
    // override로 부모의 메소드를 가져왔다.
    override init(_ name: String) {
        // super 로 부모의 메소드 사용(기존의)
        super.init("베프 " + name)
    }
    
    override func sayHi() {
        super.sayHi()
    }
    
    func sayGoodBye(){
        print("sayGoodBye() called")
    }
    
}
let myFriend = Friend("쩡대리")
myFriend.sayHi()
let myBestFriend = BestFriend("영희")
myBestFriend.sayHi()
myBestFriend.name
💡 이것 저것 더 공부 해봤는데
override란 다시 정의하겠다!
super란 부모의 구현을 따르겠다!
final로 override를 막을 수 있다!
다른 것들은 일단 훓어보고 넘어간다… 넘 어려우면 다음에 하기 싫어지므로..