[TIL] Swift - 구조체, 클래스 4

신승현·2024년 1월 31일

TIL

목록 보기
13/72

1. 타입 캐스팅

  • 부모 클래스로부터 상속된 자식 클래스는 자기 자신의 타입이기도 하면서, 동시에 부모 클래스의 타입이다. 이때문에 자식 클래스는 본래의 타입 대신 부모 클래스 타입으로 선언하여 사용할 수 있다.

2. 타입 비교 연산

  • 변수나 상수 또는 인스턴스에 이 연산자를 사용하면 할당된 값을 비교하는 것이 아니라 타입이 일치하는지 여부를 비교하고 그 결과를 Bool 형태로 돌려준다.
인스턴스(또는 변수, 상수) is 비교대상 타입

3. 타입 캐스팅 연산

  • 타입 캐스팅을 위한 연산자는 as이다.
// 업 캐스팅
객체 as 변환할 타입

// 다운 캐스팅
객체 as? 변환할 타입(결과는 옵셔널 타입)
객체 as! 변환할 타입(결과는 일반 타입)

4. Any, AnyObject

  • 상속 관계에 있지 않아도 타입 캐스팅이 가능한 예외가 있는데 바로 Any, AnyObject 타입이다.
var list = [AnyObject]()
list.append(Vehicle())
list.append(Car())
list.append(SUV())

5. 초기화 구문

  • 모든 저장 프로퍼티는 초기화되어야 하며 기본 초기화 구문을 사용할 때 저장 프로퍼티에 초기값이 지정되어 있어야 한다.

6. 초기화 메소드

  1. 초기화 메서드의 이름은 init을 사용한다.
  2. 매개변수의 개수, 이름, 타입은 임의로 정의할 수 있다.
  3. 매개변수의 이름과 개수, 타입이 서로 다른 여러 개의 초기화 메서드를 정의할 수 있다.
  4. 정의된 초기화 메서드는 직접 호출되기도 하지만, 대부분 인스턴스 생성 시 간접적으로 호출된다.
  • 초기화 메소드도 오버라이딩이 가능하다.
profile
개발자

0개의 댓글