**Dart Class & Object
🔶 Class의 구성요소
객체 지향 ←→ 절차 지향
절차 지향은 순서대로 처리
객체는 왜 써야하는가
객체와 클래스는 어떤 연관이 있는가
객체 지향이란
객체 지향과 반대되는 것으로 절차 지향이 있음
절차 지향이란 코드 처음부터 끝까지 순차적으로 하나하나 실행되는 것
object 데이터 혹은 기능이 정의되어 있으며 프로그램상에서 다룰 수 있는 어떤 것
class object 의 데이터와 기능이 정의되어 있는 설계도
🔶 Inheritance & Polymorphism
🔶 Interface & Abstract Class
Dart 언어는 Interface를 사용하지 않습니다.
1 absetract class, mixin 으로 인해 interface 를 사용하지 않음
2 mixin 으로 새로운 클래스를 생성가능
3 interface를 실질적으로 사용하는 것은 아니나 개념은 사용할 수 있음
🔶 Abstract Class & Mixin
Dart class는 암시적으로 인터페이스의 역할을 할 수 있습니다.Dart는 Mixin을 통해 class에 기능을 추가할 수 있습니다.Abstract와 인터페이스는 역할이 어느 정도 겹치기 때문에 Abstract 키워드를 사용해 원하는 메서드를 구현하도록 할 수 있습니다.
abstract
mixin
class를 사용하는 이유?
Class 는 객체지향 프로그래밍의 원칙을 따르는 dart 에서 코드의 재사용성 및 유지보수성을 높여주며,
상속을 통해 다른 클래스의 속성과 메서드를 상속받을 수 있다.
Abstract Class & mixin & interface 개념
abstract Class 는 추상클래스는 인스턴스를 생성할 수 없는 클래스로
다른 클래스에 공통된 특성 제공하기 위해 사용
abstract 키워드를 사용하여 정의한다
mixin 은 다중 상속으로 클래스에 새로운 기능을 주입하거나 코드를 재사용하기 위해 사용
with 키워드를 사용하여 적용할 수 있음
interface
dart 에서는 interface 를 명시적으로 정의하지는 않지만
클래스가 특정한 메서드를 가지고 있으면 해당 클래스가 해당 인터페이스를 구현하고 있다고 간주