[Dart] class 메모

Minseok Seo·2022년 11월 4일
0

생성자

void main() {
  Person person = Person('서민석', 28);
  person.introduce();
}

class Person {
  String name;
  int age;

  // 아래의 두가지 방식은 같은 동작을 한다.
  Person(this.name, this.age);
  // Person(String name, int age)
  //   : this.name = name,
  //     this.age = age;

  void introduce() {
    print('저는 $name이고, 나이는 $age살 입니다.');
  }
}

상속

void main() {
  Developer person = Developer('서민석', 28);
  person.introduce();
  // 저의 이름은 서민석이고, 나이는 28살 입니다.
  // 그리고 개발자입니다.
}

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void introduce() {
    print('저의 이름은 $name이고, 나이는 $age살 입니다.');
  }
}

class Developer extends Person {
  Developer(String name, int age) : super(name, age);

  
  void introduce() { // 오버라이딩
    super.introduce(); // super 키워드를 이용하여 부모클래스의 메소드를 실행 가능.
    print('그리고 개발자입니다.');
  }
}

추상클래스

추상클래스는 인스턴스화 할 수 없으며, 인터페이스의 용도로만 사용된다.

void main() {
  Developer person = Developer('서민석', 28);
  person.introduce();
  // 저의 이름은 서민석이고, 나이는 28살 이며, 개발자 입니다.
}

abstract class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void introduce();
}

class Developer implements Person {
  String name;
  int age;

  Developer(this.name, this.age);

  void introduce() {
    print('저의 이름은 $name이고, 나이는 $age살 이며, 개발자 입니다.');
  }
}

0개의 댓글