반응형
상속이라는 것은 클래스를 보다 더 강력하게 만들어준다.
Swift에서는 클래스의 상속을 이렇게 사용한다!
클래스 속성 정의
역시 소스로 설명하겠다!
class Person {
String name : String = "이름";
//Override 불가
final func hello(){
print("Hello!");
}
//Override 불가
static func typeMethod(){
print("타입메소드! - Static");
}
// Override 가능!
class func classMethod() {
print("타입메소드! - class");
}
// Override 불가 == static과 같은 의미
fianl class func classMethod2(){
print("타입메소드! - final class");
}
}
class Student : Person{ // Person class 상속
var number = 1;
super.hello(); // 부모클래스의 func 호출
override func classMethod(){ // classMethod() 재정의!
print("타입메소드! - Override");
}
}
// 클래스의 생성과 호출
let temp1 = Person();
let temp2 = Student();
temp2.name = "뚠님" // temp2는 Person을 상속받은 Student를 생성하였기 때문에 name 사용 가능
temp1.number = 2 // temp1은 Person클래스 이기 때문에 Student에만 있는 number값이 없으므로 에러 발생!!
자바에서는 어노테이션(@)으로 Override를 구분했는데 여기는 이렇게 class앞에 써준다.
또한 extends를 사용하지 않고 자료형을 지정하듯이 class Student : Person 형태로 하는게 독특하다.
그외에는 크게 어려움이 없는 것 같다.
반응형
'Develop > iOS' 카테고리의 다른 글
Swift nil병합 연산자 (0) | 2019.05.10 |
---|---|
Swift 이니셜라이저와 디이니셜라이저 ( init and deinit ) (0) | 2019.05.10 |
Swift 프로퍼티 (Property) (0) | 2019.05.09 |
Swift 클래스 와 구조체 ( Reference and Value ) (0) | 2019.05.09 |
Swift 열거형 (enum) (0) | 2019.05.08 |