YSHUSH

클래스 상속 본문

Coding/Kotlin

클래스 상속

코딩; 2022. 1. 27. 15:50

 

상속 관계의 클래스를 만들어보자

 

 

class Animal

open class Animal(val name:String)

interface Pet

interface Pet{
    var category:String
    val msgTags:String
        get() = "I love my pet!"

    var species:String
    fun feeding()
    fun patting(){
        println("Keep patting")
    }
}

class Cat

class Cat(name: String, override var category: String) : Pet, Animal(name){
    override var species: String = "cat"

    override fun feeding() {
        println("Feeding cat")
        println("cat name:$name")
    }
}

class Dog

class Dog(name: String, override var category: String) : Pet, Animal(name){
    override var species: String = "dog"

    override fun feeding() {
        println("Feeding dog")
        println("dog name:$name")
    }
}

class Master

class Master{
//    fun playWithPet(dog:Dog){
//    }
//    fun playWithPet(cat:Cat){
//    }
    fun playWithPet(pet:Pet){
        println(pet.species)
        pet.feeding()
    }
}

함수호출부

fun main(args: Array<String>) {

    val master = Master()
    val dog = Dog("뭉뭉이", "Small")
    master.playWithPet(dog)

    val cat = Cat("영춘이", "Big")
    master.playWithPet(cat)

}

'Coding > Kotlin' 카테고리의 다른 글

Generic  (0) 2022.01.27
Composition  (0) 2022.01.27
Interface  (0) 2022.01.27
추상클래스(abstract class)  (0) 2022.01.27
상속  (0) 2022.01.27