2022. 4. 18. 11:15ㆍIT/안드로이드
1편에 이어서 2편 작성하겠다.
이번엔 추상 클래스에서 추상 함수를 선언한 다음 서브클래스에서 그 기능을 구현하는 방법을 알아보도록 한다.
1.
main()함수에 추가하고싶은 abstract funtion을 추가한다.
ex ) abstract fun floorArea(): Double
** 참고; 추상 클래스에서 정의된 모든 추상 메서드는 추상 클래스의 서브클래스에서 구현되어야 한다. 코드를 실행하려면 먼저 서브클래스에서 floorArea()를 구현해야 한다.
2.
SquareCabin 이라는 SubClass에서 floorArea를 구현할 것인데,
이 함수도 동일하게 상위 클래스의 abstract 함수를 구현하므로,
다른 변수들(buildingMaterial..capa )과 같이 , 함수에도 override fun 을 써줘야한다.
override fun floorArea(): Double {
return length * length
}
여기서 가로* 세로를 곱한 면적 값을 return 해주기로 합니다.
여기서 length 는 floorArea에 있는 변수가 아니다. 고로 SquareCabin 에 length를 추가해준다.
이와 같이 RoundHut, RoundTower에도 동이랗게 override fun floorArea를 추가해준다.
RoundHut에서 아래와 같은 함수를 쓰는데,
override fun floorArea(): Double {
return radius * radius
}
이걸 RoundTower에서 동일하게 쓸 필요가 없다.
super.floorArea() 로 radius*radius 값을 받아올 수 있다.
class RoundTower(residents: Int,
radius: Double,
val floors: Int = 2) : RoundHut(residents, radius) {
override val buildingMaterial = "Stone"
override val capacity = 4 * floors
/*
override fun floorArea(): Double {
return radius * radius * floors
}
*/
override fun floorArea(): Double{
return super.floorArea() * floors
}
}
그러면 radius * radius * floors 값을 return 하게 된다. !
'IT > 안드로이드' 카테고리의 다른 글
Android - Material Design page (2) | 2022.04.19 |
---|---|
Kotlin의 클래스 및 상속 - 3 (1) | 2022.04.18 |
Kotlin 의 Class 및 상속 (2) | 2022.04.18 |
Android - Kotlin Logging & Debugging (3) | 2022.04.15 |
Android - Navigating (6) | 2022.04.14 |