추상클래스와 인터페이스
추상클래스
- 상속의 재료로 사용 되는 클래스
- 상세 부분이 미정의 된 클래스
추상클래스는 클래스키워드 앞에서 abstract 를 기술 한다
abstract class Character{
String name;
void attack(Slime slime); //추상메서드 -> 함수의 몸체가 없다.
}
추상클래스는 객체 생성이 직접되지 않는다 다만 추상메소드를 상속받은 클래스는 객체 생성가능
그리고 또한 추상메서드는 추상메서드를 오버라이드해서 실제내용을 구현해야한다.
인터페이스
- 모든 메소드는 추상 메소드 여야 한다
- 필드를 가지지 않는다
기능의 구현이 필요한 것을 묶은 것으로 해당 인터페이스에 대해서 일반클래스에 implements 하여 구현하도록 강제하는 것이다.
abstract interface class Human { //인터페이스의 해당예 class앞에 abstract interface 붙임
void speak();
}
인터페이스의 효과
- 같은 인터페이스를 구현한 클래스들은 공통 메소드를 구현하고 있음을 보장
- 어떤 클래스가 인터페이스를 구현하고 있다면, 적어도 그 인터페이스에 정의된 메소드를 가지고 있다는 것이 보증된다
단 특징적으로 일반클래스에서 여러 인터페이스를 다중으로 받아서 구현할 수 있다.
class Store implements Buy, Sell{
extends와 implements 를 동시에 사용
class Dancer extends Character implements Human
상속의 재료를 작성하는 개발자의 입장과 역할
- 다른 사람이 상속의 재료로 사용할 부모 클래스를 만드는 입장의 개발자도 존재 한다
- 미래의 개발자가 효율 좋게 안심하고 이용할 수 있는 상속의 재료를 작성하는 것이 그의 사명
추상 클래스
- 내용이 정의되지 않고 상세정의 미정인 메소드가 있는 클래스는 abstract 를 붙여서 추상메소드로 한다
- 추상 클래스는 인스턴스화 할 수 없다
- 추상 클래스와 추상 메소드를 활용한 상속의 재료로서의 부모클래스를 개발하면, 예기치 않은 인스턴스화나 오버라이드의 미 구현의 걱정이 없다
인터페이스
- 추상 클래스 중에, 기본적으로 추상메소드만 가지고 있는 것을 인터페이스 로서 특별 취급 한다
- 복수의 인터페이스를 부모로 두는 다중상속 효과가 가능
- 인터페이스를 부모로 두는 자식 클래스 정의에 implements 를 사용
- interface 키워드는 Dart 3에 추가되었음
'오름캠프 flutter과정 정리' 카테고리의 다른 글
10일차 정리(Object 클래스의 기본 기능) (3) | 2024.03.17 |
---|---|
9일차 정리(다형성) (0) | 2024.03.14 |
7일차 교육 정리(상속과 생성자) (0) | 2024.03.12 |
6일차 강의 정리(테스트 코드작성 및 캡슐화와 컬렉션) (0) | 2024.03.11 |
3일차 정리 깃과 다트기본문법관련 (0) | 2024.03.06 |