8.4 상속
클래스가 구조체와 구분되는 특성 중 하나는 상속(Inheritance)입니다. 일반적으로 사회에서 사용하는 상속의 의미와 유사합니다. 이를 객체지향에서 상속을 정의하자면 '한 클래스가 다른 클래스에서 정의된 프로퍼티나 메서드를 물려받아 사용하는 것'이라고 할 수 있습니다. 기능이나 프로퍼티를 물려주는 클래스와 이를 상속받는 클래스 사이에서는 다음과 같은 관계가 성립됩니다..
프로퍼티와 메서드를 물려준 클래스는 부모 클래스 = 상위 클래스 = 슈퍼 클래스 = 기본 클래스
프로퍼티와 메서드를 물려받은 클래스는 자식 클래스 = 하위 클래스 = 서브 클래스 = 파생 클래스
아무것도 상속받지 않은 기본 클래스를 만들어보겠습니다.
class A {
var name = "Class A"
var description: String {
return "This class name is \(self.name)"
}
func foo() {
print("\(self.name)'s method foo is called")
}
}
이제 인스턴스를 만들기 위해 클래스를 초기화합니다.
let a = A()
a.name // "Class A"
a.description // "This class name is Class A"
a.foo()
// 실행 결과
Class A's method foo is called
Last updated