kotlin, abstract

이도현·2023년 8월 23일
1

Kotlin 공부

목록 보기
19/20

1. abstract란

  • abstract: 추상
  • abstract class: 자식클래스에서 반드시 오버라이딩 해야만 사용할수 있는 메소드를 의미
  • 객체 지향 프로그래밍 언어에서 중요한 개념
  • 클래스나 메서드에 사용되며, 구체적인 구현을 제공하지 않아도 되지만, 이를 상속 받는 하위 클래스에서 구체적인 구현을 제공해야 함.

2. 특징

1) 클래스: 직접 인스턴스화할 수 없다. 이를 상속받는 하위 클래스에서 구체적 구현

abstract class Animal{
	abstract fun Bowwow()
}

2) 메서드: 하위 클래스에서 반드시오버라이드

abstract class Animal {
    abstract fun speak()
}

class Dog : Animal() {
    override fun speak() {
        println("Woof!")
    }
}

3) 프로퍼티: 초기 값이 제공되지 않으며, 하위클래스에서 반드시 오버라이드

abstract class Shape {
    abstract val area: Double
}

3. abstract를 사용하는 이유

1) 강제적인 템플릿 제공

  • 하위 클래스에 대한 템플릿 역할을 함으로써. 부여된 강제성은 일관된 인터페이스의 사용을 보장하고, 실수로 메서드나 프로퍼티 구현을 누락하는 것을 방지

2) 코드의 재사용

  • 공통적인 로직이나 상태를 'abstract' 클래스에 정의함으로써, 여러 하위 클래스에서 해당 로직을 재사용

3) 확장성

  • 클래스의 상속을 통해 쉽게 확장, 새로운 하위 클래스를 추가하면서 기존 코드의 변경 없이 기능을 확장

4) 타입 확장성

  • 특정 유형의 객체를 기대하는 위치에만 그 유형의 객체가 사용될 수 있도록 보장

5) 모듈화의 분리

  • 인터페이스와 구현을 분리, 유지보수 향상, 가독성 증가

6) 디자인 패턴의 기반

  • 많은 디자인 패턴은 추상화를 중심으로 구성
  • 디자인 패턴을 구현하는데 필수

7) 정의와 구현의 분리

  • 어떤 기능이 필요한지와 그 기능이 어떻게 구현되는지 분리. 이로 인해 시스템의 아키텍처를 더욱 명확하게 정의

Reference

http://wiki.hash.kr/index.php/Abstract

profile
좋은 지식 나누어요

0개의 댓글