Notice
Recent Posts
Recent Comments
Link
투케이2K
78. (kotlin/코틀린) abstract 추상 클래스 생성 및 open 클래스 상속 , super 부모 호출 , override 메소드 재정의 실시 본문
Kotlin
78. (kotlin/코틀린) abstract 추상 클래스 생성 및 open 클래스 상속 , super 부모 호출 , override 메소드 재정의 실시
투케이2K 2022. 9. 27. 14:46[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// TODO [테스트 메소드 정의 실시]
fun testMain(){
Log.i("---","---")
Log.d("//===========//","================================================")
Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 테스트 함수 동작 실시]")
Log.d("//===========//","================================================")
Log.i("---","---")
/**
* ------------------------------------
* TODO [요약 설명]
* ------------------------------------
* 1. 추상클래스란 하나 이상의 추상 메소드를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 합니다
* ------------------------------------
* 2. 추상클래스 특징으로는 사용하는 메소드 명(헤더)을 정의해놓고, 메소드 몸체(바디) 내용은 구현하지 않는 클래스입니다
* ------------------------------------
* 3. 추상클래스, 인터페이스를 사용하면 상속을 받아서 다형성을 표시할 수 있고 다양하게 클래스를 확장시켜 사용할 수 있습니다
* ------------------------------------
* 4. 추상클래스 사용 시 해당 클래스에 포함되는 메소드 또한 abstract 키워드를 붙여야 합니다
* ------------------------------------
* */
// [로직 처리 실시]
try{
// ------------------------------------
// TODO [외부인 클래스 객체 생성 실시]
val out = Out()
// TODO [funcTest 메소드 호출 실시]
out.funcTest()
// ------------------------------------
}
catch(e : Exception){
Log.i("---","---")
Log.e("//===========//","================================================")
Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 에러 상황 발생]")
Log.i("","\n"+"[error : "+e.message+"]")
Log.e("//===========//","================================================")
Log.i("---","---")
}
}
// TODO [abstract 부모 추상 클래스 선언 실시]
abstract class Parent {
abstract fun funcTest() // [헤더 정의]
}
// TODO [추상클래스를 상속 받는 일반 자식 클래스 선언 실시]
open class Child : Parent() {
// [부모 메소드 재정의 및 몸체 구현 실시]
override fun funcTest() {
Log.i("---","---")
Log.w("//===========//","================================================")
Log.i("","\n"+"[Test_Kotlin > Child : funcTest 수행]")
Log.w("//===========//","================================================")
Log.i("---","---")
}
}
// TODO [일반 자식 클래스를 상속 받는 외부 클래스 선언 실시]
class Out : Child() {
// [부모 메소드 재정의 및 몸체 구현 실시]
override fun funcTest() {
super.funcTest() // [자식 클래스 메소드 호출]
Log.i("---","---")
Log.w("//===========//","================================================")
Log.i("","\n"+"[Test_Kotlin > Out : funcTest 수행]")
Log.w("//===========//","================================================")
Log.i("---","---")
}
}
[결과 출력]
반응형
'Kotlin' 카테고리의 다른 글
Comments