Dart - class, 상속

Theo·2023년 11월 27일

Dart

목록 보기
4/6
post-thumbnail

class

// 클래스 (class) - 객체를 생성하기 위한 템플릿, 설계도

class Person {
  // 상태 - 멤버 변수
  String name;     // 이름
  int age;         // 나이
  
  // 생성자 (함수)
  Person(this.name, this.age);
  
  // 행동 - 메서드 (함수)
  void sayHello() {
    print('안녕하세요 저는 $name이고, $age살 입니다.');
  }
}


void main() {
  Person personEilison = Person('엘리손', 20);  //  인스턴스 생성
  Person personOwen = Person('오웬', 19);  //  인스턴스 생성
  
  print(personEilison.name); // 엘리손
  print(personOwen.name);    // 오웬
  
  personEilison.sayHello();  // 함수내의 메서드 호출
                             // 안녕하세요 저는 엘리손이고, 20살 입니다.
  personOwen.sayHello();     // 함수내의 메서드 호출
                             // 안녕하세요 저는 오웬이고, 19살 입니다.
}

상속

// 클래스 (class) - 객체를 생성하기 위한 템플릿, 설계도

class Person {
  // 상태 - 멤버 변수
  String name;     // 이름
  int age;         // 나이
  
  // 생성자 (함수)
  Person(this.name, this.age);
  
  // 행동 - 메서드 (함수)
  void sayHello() {
    print('안녕하세요 저는 $name이고, $age살 입니다.');
  }
}


// 상속 - 기존 클래스의 특성을 다른 클래스에서 재사용하고 확장하는 매커니즘
// 부모 클래스와 자식 클래스간에 상속
class Man extends Person {
  Man(String name, int age) : super(name, age);
  
  @override
  void sayHello() {
    super.sayHello();  //  부모 클래스의 정의되어있던 함수를 호출함
                       //  안녕하세요 저는 선비이고, 22살 입니다.
    print('\n제 성별은 남자 입니다.');
  }
}


void main() {
  var man = Man('선비', 22);
  man.sayHello();            //  제 성별은 남자 입니다.
}
profile
Logbook

0개의 댓글