Protocol과 Extension (2)
Protocol and Extension(2)
참고자료
이 포스트는 야곰님의 블로그 글 중 Swift - 프로토콜, 익스텐션
을 참고하여 쓴 포스트임을 미리 밝힙니다
아래의 링크를 클릭하시면 야곰님의 블로그
로 이동 할 수 있습니다
아래의 링크를 클릭하시면 Protocol과 Extension (1)을 볼 수 있습니다.
메서드 요구
-
프로토콜은
특정 인스턴스 메서드나 타입 메서드를 요구 할 수도 있다
-
프로토콜이 요구할 메서드는 프로토콜 정의에서 작성
-
메서드의 실제 구현부인 중괄호 부분은 제외하고
메서드의 이름, 매개변수, 반환 타입 등만 작성
-
프로토콜의 메서드 요구에서는 매개변수 기본값을 지정할 수 없다
-
프로토콜에서 타입 메서드를 요구할 때는 타입 프로퍼티 요구와 마찬가지로 앞에
static
키워드를 명시한다 -
static 키워드를 사용하여 요구한 타입 메서드를 클래스에서 실제 구현할 때에는 static 키워드나 class 키워드 어느 쪽을 사용해도 무방
코드 링크
이니셜라이저 요구
-
프로토콜은 프로퍼티, 메서드 등과 마찬가지로 특정한 이니셜라이저를 요구 할 수도 있다
-
프로토콜에서 이니셜라이저를 요구하려면 메스드 요구와 마찬가지로
이니셜라이저를 정의하지만 구현하지는 않는다
-
이니셜라이저의 매개변수를 지정하기만 할 뿐,
중괄호를 포함한 이니셜라이저 구현은 하지 않는다
코드 링크
프로토콜의 상속
-
프로토콜은 하나 이상의 프로토콜을 상속받아 기존 프로토콜의 요구사항보다 더 많은 요구사항을 추가할 수 있다
-
프로토콜 상속 문법은 클래스의 상속 문법과 유사