[Dart] 추상 클래스(Abstract class)

AsherKim·2023년 5월 25일
0

플러터 TIL

목록 보기
8/18

Dart에서 추상 클래스(Abstract Class)는 인스턴스화할 수 없는 클래스로, 다른 클래스에게 공통된 특징과 동작을 정의하는 데 사용된다. 추상 클래스는 상속을 통해 다른 클래스에게 특정 메서드의 구현을 강제할 수 있다.

추상 클래스를 정의하기 위해 abstract 키워드를 사용하여 클래스를 선언한다. 추상 클래스는 직접 인스턴스화할 수 없으므로, 일반적으로 추상 클래스의 인스턴스를 만들지 않는다. 예를 들어, AbstractClass라는 추상 클래스를 정의할 수 있다.

예제코드 🌈

abstract class AbstractClass {
  // 추상 클래스의 멤버들
}

추상 클래스는 추상 메서드(Abstract Method)를 포함할 수 있다. 추상 메서드는 메서드의 시그니처(이름, 매개변수, 반환 타입)만을 정의하고, 실제 구현은 하위 클래스에서 해야 한다. 추상 메서드를 선언하려면 메서드 선언부 뒤에 세미콜론(;)을 붙인다. 예를 들어, doSomething() 이라는 추상 메서드를 가진 추상 클래스를 정의할 수 있다.

예제코드 🌈

abstract class AbstractClass {
  void doSomething(); // 추상 메서드
}

추상 클래스는 다른 클래스에게 상속되어 사용된다. 하위 클래스는 추상 클래스의 추상 메서드를 구현해야 한다.
추상 클래스를 상속받는 클래스는 extends 키워드를 사용하여 추상 클래스를 지정한다.
예를 들어, Subclass가 AbstractClass를 상속받고 doSomething 메서드를 구현하는 방법은 다음과 같다.

예제코드 🌈

abstract class AbstractClass {
  void doSomething(); // 추상 메서드
}

class Subclass extends AbstractClass {
  @override
  void doSomething() {
    // 추상 메서드 구현
    print('Doing something!');
  }
}

추상 클래스는 다른 클래스들 사이에 공통된 동작을 추상화하는 데 유용하다.
추상 메서드를 통해 하위 클래스에서 특정 동작의 구현을 강제할 수 있으므로, 다형성(polymorphism)과 코드 재사용성을 높일 수 있다. 추상 클래스는 인터페이스와도 유사한 역할을 수행할 수 있지만, 추상 클래스는 인스턴스 변수와 구현된 메서드를 포함할 수 있다는 점에서 차이가 있다.

profile
추리를 좋아하는 개발자

0개의 댓글