- 프로토콜 자체는 자신의 인스턴스는 만들지 못한다.
- 프로토콜을 임플리먼트하면 해당 프로토콜의 변수나, 메소드의 설정이 강제된다.
- 프로토콜도 상속해서 사용이 가능하다.
프로토콜 선언
// 이름
protocol Naming {
// get set 을 통해 이름을 성정하고 가져올수 있다.
var name: String { get set }
func getName() -> String
}
// 나이
protocol Aging {
var age: Int { get set }
}
상속
이름, 나이 프로토콜을 상속하는 친구 프로토콜
protocol UserNotifiable : Naming, Aging {
}
스트럭트
친구 프로토콜을 임플레먼트하는 MyFriend 스트럭트
struct MyFriend: UserNotifiable {
var name: String
var age: Int
func getName() -> String {
return self.name
}
}
결과
var myFriend = MyFriend(name: "만쥬", age: 10)
myFriend.getName() // 만쥬
myFriend.age // 10
반응형