개발일기

23.07.18 부트캠프 9일차 클래스 상속

빛나는맛과탕탕 2023. 7. 18. 09:21
반응형

클래스 상속  관계

 

상속 하는 이유?

 

다형성 

 

유지보수 줄일 수 있다

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

fun main() {

var bird = Bird()

var chicken = Chicken()

var sparrow = Sparrow()

var pigeon = Pigeon()

 

bird.fly()

chicken.fly()

sparrow.fly()

pigeon.fly()

}

 

open class Bird { // 하위클래스 받으려면 open 써야됨

fun fly() {

             println("새는 난다")

    }

}

 

class Chicken : Bird() {} //부모가 누군지

 

class Sparrow : Bird() {} //부모가 누군지

 

class  Pigeon: Bird() {} //부모가 누군지

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

// 부모 클래스에서 생성자를 활용하는 경우 자식에 객채 생성 전달 해주기

 

 

fun main() {
    var bird = Bird("새")
    var chicken = Chicken("닭")
    var sparrow = Sparrow("참새")
    var pigeon = Pigeon("비둘기")

    bird.fly()
    chicken.fly()
    sparrow.fly()
    pigeon.fly()
}

open class Bird(name:String) { //open을 꼭 써야됨
    var name: String = ""

    init {
        // this는 현재 클래스의 상태변수를 의미합니다
        // var name: String = ""
        this.name = name
    }

    fun fly() {
        println("${name} 날아요~")
    }

}

class Chicken(name: String) : Bird(name) {}

class Sparrow(name: String) : Bird(name) {}

class Pigeon(name: String) : Bird(name) {}

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

반응형