728x90
반응형
1. 클래스란?
Swift에서 클래스는 객체 지향 프로그래밍(OOP)의 기본 빌딩 블록입니다. 해당 클래스 유형의 개체가 가질 수 있는 속성과 동작을 정의하는 청사진입니다. 클래스는 개체라고도 하는 인스턴스를 만들기 위한 템플릿 또는 프로토타입 역할을 합니다.
클래스에서 데이터를 저장하는 속성과 작업을 수행하거나 기능을 제공하는 메서드를 정의할 수 있습니다.
속성은 이름, 사용 기간 또는 색상과 같은 개체의 특성 또는 특성을 나타냅니다. 반면에 메서드는 개체가 수행할 수 있는 작업 또는 동작을 정의하는 클래스와 관련된 함수입니다.
Swift의 클래스는 상속을 지원하므로 수퍼클래스에서 속성과 메서드를 상속하는 하위클래스를 만들 수 있습니다. 이렇게 하면 코드 재사용이 용이해지고 기능이 추가되거나 수정된 특수 버전의 클래스를 만들 수 있습니다.
클래스를 사용하면 각각 고유한 상태와 동작이 있는 동일한 청사진을 기반으로 개체의 여러 인스턴스를 만들 수 있습니다. 클래스에서 생성된 개체는 서로 상호 작용하고 다른 클래스의 개체와 상호 작용할 수 있으므로 OOP 원칙을 사용하여 구축된 복잡한 소프트웨어 시스템의 기반을 형성합니다.
2. 부모 클래스와 자식 클래스
- 상속된 클래스는 부모 클래스의 모든 기능을 상속 받으며, 자신만의 기능을 추가할 수 있다.
- 상속받은 클래스들은 하위 클래스(subclass) 또는 자식 클래스(child class)라고 부른다.
- 하위 클래스가 상속받은 클래스는 부모 클래스(parent class) 또는 상위 클래스(super class)라고 부른다.
- 단일 상속(single inheritance)
- 스위프트에서 하위 클래스는 단 하나의 부모 클래스만 상속 받을 수 있다.
3. 상속
- 상속은 쉽게 말해서 부모 클래스가 가진 것을 자식 클래스가 물려 받는 것이다.
- class 자식:부모 { }
- 부모 클래스는 하나만 가능하다.
- 콜론 다음이 여러 개이면 나머지는 프로토콜이다.
- class 클래스명:부모명, 프로토콜명{}
- 부모가 있으면 부모 다음에 표기한다.
- class 클래스명:부모명, 프로토콜명1, 프로토콜명2 {}
- class 클래스명:프로토콜명{} (부모가 없으면 바로 표기 가능하다)
- class 클래스명: 프로토콜명1, 프로토콜명2{ }
- 상속은 클래스만 가능하다.
- 클래스, 구조체(struct), 열거형(enum), extension에 프로토콜은 채택(adopt)할 수 있다.
4. super
- 부모 메서드 호출 시 사용한다.
5. override
- override란 하위 클래스는 슈퍼클래스로부터 상속되는 인스턴스 메서드, 유형 메서드, 인스턴스 속성, 유형 속성 또는 구독자의 고유한 사용자 지정을 구현하는 것이다.
- 즉, 다시 말해서 슈퍼클래스로부터 상속받은 메서드, 프로퍼티들을 재정의하는 키워드이다.
- override는 부모와 자식에 같은 메서드가 있으면 자식이 우선이다.
- 부모와 자식에 display()라는 메서드가 있어서 Student클래스는 display() 메서드가 2개이다.
- Student클래스의 인스턴트 lee가 display()를 호출할 때, 자식클래스가 새로 만든 display() 메서드가 우선적으로 호출되려면 func 앞에 override 키워드를 쓴다.
728x90
반응형
'Apple > Swift' 카테고리의 다른 글
[Swift] 프로토콜(protocol) (0) | 2023.02.11 |
---|---|
[Swift] 익스텐션과 접근 제어 (0) | 2023.02.09 |
[Swift] computed property, stored property, self, overloading (0) | 2023.02.01 |
[Swift] 클래스, 객체, 인스턴스 (0) | 2023.01.31 |
[Swift] 함수와 메서드 (0) | 2023.01.26 |