ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] class : inheritance, instance, method, override
    Swift 2022. 5. 10. 00:15
    // BASE CLASS
    class Person {
        // PROPERTY
        var name: String = ""
        var age: Int = 0
        
        // COMPUTED PROPERTY
        var description: String{
            return "This person's name is \(name) and \(age) years old"
        }
        
        //METHOD
        func greeting() -> String {
            return "Hi my name is \(name)"
        }
    }
    
    // CLASS
    class Movie {
        // PROPERTY
        var title: String = ""
        var year: Int = 0
        // INSTANCE PROPERTY
        var director: Person = Person()
        // ARRAY OF INSTANCE PROPERTY
        var actors: [Actor] = []
        
        // METHOD
        func description() -> String {
            return "영화 \"\(title)\"은 \(year)년에 개봉된 영화입니다. \(director.name) 감독이 감독하였으며 배우 \(actors[0].name)과 배우 \(actors[1].name)이 연기로 참여 하였습니다"
        }
    }
    
    // SUBCLASSING
    class Actor: Person {
        var isAwarded: Bool = false
        
        // OVERRIDE
        override func greeting() -> String {
            return "Hi my name is \(name) and I am an actor"
        }
    }
    
    // SUBCLASSING
    class Director: Person {
        var isAwarded: Bool = false
        
        // OVERRIDE
        override func greeting() -> String {
            return "Hi my name is \(name) and I am a director"
        }
    }
    
    let 우민호 = Director()
    우민호.name = "우민호"
    우민호.age = 51
    우민호.isAwarded = true
    
    let 이병헌 = Actor()
    이병헌.name = "이병헌"
    이병헌.age = 51
    이병헌.isAwarded = true
    
    let 곽도원 = Actor()
    곽도원.name = "곽도원"
    곽도원.age = 48
    곽도원.isAwarded = true
    
    let 남산의부장들 = Movie()
    남산의부장들.title = "남산의부장들"
    남산의부장들.year = 2020
    남산의부장들.director = 우민호
    남산의부장들.actors.append(이병헌)
    남산의부장들.actors.append(곽도원)
    
    print(남산의부장들.description())
    print(이병헌.greeting())
    print(곽도원.greeting())
    print(우민호.greeting())
    
    
    
    // -> 영화 "남산의부장들"은 2020년에 개봉된 영화입니다. 우민호 감독이 감독하였으며 배우 이병헌과 배우 곽도원이 연기로 참여 하였습니다
    // -> Hi my name is 이병헌 and I am an actor
    // -> Hi my name is 곽도원 and I am an actor
    // -> Hi my name is 우민호 and I am a director
Designed by Tistory.