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살 이며, 개발자 입니다.');
}
}