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(); // 제 성별은 남자 입니다.
}