상속, 오버라이딩
Inheritance
- 한 클래스가 다른 클래스에서 정의된 프로퍼티나 메소드를 물려받아 사용하는 것
- parent: 부모 클래스, 상위 클래스, 수퍼 클래스, 기본 클래스
- child: 자식 클래스, 하위 클래스, 서브 클래스, 파생 클래스
- : 키워드
class 클래스명 : 부모 클래스 { //추가로 구현하고자 하는 내용 }
- 스위프트에서는 단일상속만 지원
- 첫 번째만 상속, 나머지는 구현(Implements)
Overriding(재정의, 덮어씀)
- 부모클래스에서 물려받은 메소드나 프로퍼티를 덮어씀
- 연산 프로퍼티 형태로 오버라이딩 해야함.
- get, set 구문을 제공해야 한다.
- 부모 클래스 접근을 위해 super 키워드 사용 가능
프로퍼티 오버라이딩 시 가능한 것
- 저장 프로퍼티를 get,set 구문이 모두 있는 연산 프로퍼티로 오버라이딩
- get, set 구문이 모두 제공되는 연산 프로퍼티를 get, set 구문이 모두 제공되는 연산 프로퍼티로 오버라이딩
- get 구문만 제공되는 연산 프로퍼티를 get, set 구문이 모두 제공되는 연산 프로퍼티로 오버라이딩
- get 구문만 제공되는 연산 프로퍼티를 get 구문만 제공되는 연산 프로퍼티로 오버라이딩
프로퍼티 오버라이딩 시 불가능 한 것
- 저장 프로퍼티를 저장 프로퍼티로 오버라이딩
- get, set 구문과 관계없이 연산 프로퍼티를 저장 프로퍼티로 오버라이딩
- 저장 프로퍼티를 get 구문만 제공되는 연산 프로퍼티(=읽기 전용)로 오버라이딩
- get, set 구문을 모두 제공하는 연산 프로퍼티를 get 구문만 제공되는 연산 프로퍼티로 오버라이딩
메소드 오버라이딩
- 오버라이딩 대상이 되는 메소드의 매개변수 개수나 타입, 반환 타입은 변경 불가
- 오버라이딩 가능한 것은 오로지 내부 구문
Overloading(적재)
- 하나의 메소드 이름으로 여러 가지 메소드를 만들어 쌓는 것.
- 메소드는 하나지만 매개변수가 다름
오버로딩을 막는 방법
- 오버로딩은 보안성이 매우 떨어짐
- final 키워드 사용
'IOS > Swift' 카테고리의 다른 글
Any, AnyObject (0) | 2016.05.28 |
---|---|
타입 캐스팅 (0) | 2016.05.28 |
메소드 (0) | 2016.05.28 |
프로퍼티 (0) | 2016.05.28 |
객체지향 프로그래밍, 구조체와 클래스 비교 (0) | 2016.05.28 |
댓글 로드 중…
트랙백을 확인할 수 있습니다
URL을 배껴둬서 트랙백을 보낼 수 있습니다