본문 바로가기

Swift

Swift 정리 : override : 부모와 자식에 같은 메서드가 있으면 자식 우선

부모와 자식에 display()라는 메서드가 있어서 Student클래스는 display() 메서드가 두 개임

Student클래스의 인스턴스 leedisplay()를 호출할 때, 자식클래스가 새로 만든 display() 메서드가 우선적으로 호출되려면 func 앞에 override키워드 씀

class Man{

  var age : Int

  var weight : Double

  func display(){

    print("나이=\(age), 몸무게=\(weight)")

  }

  init(age: Int, weight : Double){  //1

    self.age = age

    self.weight = weight

  }

}

class Student : Man {

  var name : String

  override func display() {            //override

    print("이름=\(name), 나이=\(age), 몸무게=\(weight)")

  }

  init(age: Int, weight : Double, name : String){

    self.name = name

    super.init(age:age, weight:weight) //부모쪽에서 받아와서 초기화

  }

}

var lee : Student = Student(age:23,weight:95,name:"이경호")

lee.display()     //이름=이경호, 나이=23, 몸무게=95.0