하루에 0.01%라도 성장하자

Develop/iOS

Swift 클래스의 상속

뚠님 2019. 5. 10. 13:42
반응형

Swift

 

상속이라는 것은 클래스를 보다 더 강력하게 만들어준다.

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 형태로 하는게 독특하다. 

 

그외에는 크게 어려움이 없는 것 같다.

반응형