[swift] 클래스와 구조체의 상속 및 차이점
이번 글에서는 Swift 프로그래밍 언어에서 클래스와 구조체의 상속 및 차이점에 대해 알아보겠습니다.
클래스와 구조체
클래스와 구조체는 Swift에서 객체 지향적인 프로그래밍을 지원하는 두 가지 타입(Type) 중 하나입니다. 두 타입은 프로퍼티와 메서드를 가질 수 있으며, 기능적으로 매우 유사합니다.
상속
클래스는 다른 클래스로부터 상속을 받을 수 있지만, 구조체는 상속을 받을 수 없습니다. 상속은 부모 클래스의 특성(프로퍼티 및 메서드)을 자식 클래스에서 다시 사용할 수 있도록 해줍니다.
예를 들어, 다음은 Vehicle
클래스가 Car
클래스에 상속되는 예시입니다.
class Vehicle {
var currentSpeed = 0.0
var description: String {
return "Traveling at \(currentSpeed) miles per hour"
}
}
class Car: Vehicle {
var numberOfDoors = 4
}
차이점
- 클래스는 참조 타입(Reference Type)이며 구조체는 값 타입(Value Type)입니다.
- 클래스는 deinitializer(소멸자)를 사용할 수 있지만, 구조체는 사용할 수 없습니다.
- 클래스 인스턴스는 두 개 이상의 참조가 있을 수 있지만, 구조체 인스턴스는 항상 단일 참조만 가질 수 있습니다.
클래스와 구조체 모두 자신만의 강점과 활용 방법이 있으며, 프로젝트의 요구에 따라 올바른 타입을 선택하는 것이 중요합니다.
문의가 있으시면 도움을 주세요.
References
- The Swift Programming Language - Inheritance
- The Swift Programming Language - Classes and Structures