투케이2K

13. (swift/xcode) class 클래스 상속 (overriding) 및 메소드 재정의 override 수행 실시 본문

Swift

13. (swift/xcode) class 클래스 상속 (overriding) 및 메소드 재정의 override 수행 실시

투케이2K 2021. 10. 8. 19:58

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT


[소스 코드]

     /*
     [요약 설명]
     1. class 자식:부모 - 방식으로 클래스간 상속을 실시합니다
     2. override 는 상속받은 메소드를 재정의할 때 사용합니다
     3. super 는 부모를 상속받은 자식쪽에서 다시 부모를 호출할 때 사용합니다 (부모 지정)
     */
    
    
    
    // [부모 class 클래스 생성 실시]
    class Parent {
        
        // 메소드 정의 실시
        func one_excute(){
            print("Parent >> one_excute()")
        }
        
        // 메소드 정의 실시
        func two_excute(){ }
        
        // 메소드 정의 실시
        func three_excute(){
            print("Parent >> three_excute()")
        }
    }
    
    
    
    // [자식 class 클래스 생성 실시 : Parent 클래스 상속 받음]
    class Child : Parent {
        
        //override 사용해 부모 클래스 메소드 재정의 실시
        override func two_excute(){
            print("Child >> two_excute()") // 자식에서 재정의 로직
        }
        
        //override 사용해 부모 클래스 메소드 재정의 실시
        override func three_excute(){
            super.three_excute() // 먼저 기존 부모 호출
            print("Child >> three_excute()") // 자식에서 재정의 로직
        }
    }
    
    
    
    // [테스트 메인 함수 정의 실시]
    func testMain(){
        print("[Program Start]")
        print("")
        
        // [자식 클래스 객체 생성 실시]
        let childClass = Child()
        
        
        // [자식 메소드 호출 실시]
        childClass.one_excute() //자식쪽에서는 부모를 상속받았기 때문에 부모 메소드 즉시 호출 가능합니다
        childClass.two_excute() //자식쪽에서 재정의한 메소드 호출
        childClass.three_excute() //자식쪽에서 재정의한 메소드 호출
    }

[결과 출력]


[요약 설명]

/*

[요약 설명]

1. class 자식:부모 - 방식으로 클래스간 상속을 실시합니다

2. override 는 상속받은 메소드를 재정의할 때 사용합니다

3. super 는 부모를 상속받은 자식쪽에서 다시 부모를 호출할 때 사용합니다 (부모 지정)

*/


 

반응형
Comments