[swift] superclass와 subclass 간 메세지 전달
Superclass와 Subclass 간에 메세지를 전달하는 것은 객체 지향 프로그래밍에서 중요한 개념입니다. 이는 상속(inheritance) 을 통해 관련된 클래스들 간의 관계를 구성하고, 코드의 재사용성을 늘리며 유지보수를 간편하게 할 수 있는 장점이 있습니다.
Superclass의 메서드 호출
Subclass는 Superclass를 상속받기 때문에 Superclass의 메서드를 호출할 수 있습니다.
class Vehicle {
func startEngine() {
print("Engine started")
}
}
class Car: Vehicle {
func drive() {
startEngine() // Superclass의 메서드 호출
print("Car is being driven")
}
}
let myCar = Car()
myCar.drive()
위 예제에서 Car
클래스는 Vehicle
클래스를 상속받았으며, startEngine()
메서드를 호출할 수 있습니다.
Superclass의 메서드 오버라이딩
Subclass는 Superclass의 메서드를 재정의(override)하여 자신에 맞게 구현할 수 있습니다.
class Vehicle {
func startEngine() {
print("Engine started")
}
}
class Car: Vehicle {
override func startEngine() {
print("Car engine started")
}
}
let myCar = Car()
myCar.startEngine()
위 예제에서 Car
클래스는 Vehicle
클래스의 startEngine()
메서드를 오버라이딩하여 새로운 동작을 정의합니다.
Superclass의 초기화 메서드 호출
Subclass는 Superclass의 초기화 메서드를 호출하여 Superclass의 속성을 초기화할 수 있습니다.
class Vehicle {
var color: String
init(color: String) {
self.color = color
}
}
class Car: Vehicle {
var numOfSeats: Int
init(color: String, numOfSeats: Int) {
self.numOfSeats = numOfSeats
super.init(color: color) // Superclass의 초기화 메서드 호출
}
}
let myCar = Car(color: "Red", numOfSeats: 4)
위 예제에서 Car
클래스는 Vehicle
클래스의 초기화 메서드를 super.init
키워드를 통해 호출하여 color
속성을 초기화합니다.
Superclass와 Subclass 간의 메시지 전달은 객체 지향 프로그래밍의 핵심적인 부분이며, 코드를 구조화하고 유연성을 높이는 데 도움이 됩니다.