반응형
protocol Movable {
}
protocol Portable {
func port()
}
extension Movable {
func move() {
print("move 실행")
}
}
struct Human: Movable,Portable {
func port() {
print("port 실행")
}
}
var man = Human()
man.move()
man.port()
Movable 프로토콜에 extension을 하였습니다.
프로토콜에 extension을 이용하면 구현부분을 작성할 수 있습니다.
struct Human: Movable,Portable {
func port() {
print("port 실행")
}
func move() {
print("move 재정의")
}
}
프로토콜 extension에 구현을 재정의 할 수 있습니다.
상속이 없는 구조체는 코드 중복이 발생할 수 밖에 없습니다.
이럴 때 프로토콜 extension을 이용하면 다중 프로토콜 채택으로
다중 상속효과와, 기본 구현을 재정의 할 수 있습니다.
protocol Movable {
}
protocol Portable {
}
extension Movable {
func move() {
print("move 실행")
}
}
extension Portable {
func port() {
print("port 실행")
}
}
struct Bird: Movable, Portable {
}
struct Drone: Movable, Portable{
}
var bird = Bird()
bird.move()
bird.port()
var drone = Drone()
drone.move()
drone.port()
반응형
'Swift 문법' 카테고리의 다른 글
Swift 튜플 (0) | 2021.03.11 |
---|---|
Swift 에러처리 try do catch (0) | 2021.02.14 |
swift guard let 사용하는 경우 (0) | 2020.11.17 |
스위프트 클로저 (swift closures) 알아보기 5 (0) | 2020.09.10 |
스위프트 클로저 (swift closures) 알아보기 4 (0) | 2020.09.10 |