상속 문법(생성자에 유의해서 보길)
class Person{
String? name;
int? money;
Person(this.name, this.money){}
void status(){
print("이름: $name , 골드: $money");
}
}
class Hero extends Person{
int? hp;
int? mp;
Hero(this.hp, this.mp, super.name, super.money);
//생성자에서 중괄호 안에 내용이 없을 경우 생략해도 됨
//단 생략할 경우 위 예시처럼 세미콜론 필수
@override
void status(){
print("이름: $name , 골드: $money");
print("hp: $hp , gold: $mp");
}
}
class Magician extends Hero{
String? skill;
int? damage;
Magician(this.skill, this.damage, super.hp, super.mp, super.name, super.money){}
void magic(){
print("Magic: $skill ,Dagmage: $damage!!");
}
}
void main(){
Person p1 = Person("Tim", 100);
p1.status();
Hero h1 = Hero(1,2,"Tim",100);
h1.status();
Magician m1 = Magician("Meteor", 999, 10,30,"Harry", 999);
m1.status();
m1.magic();
m1.magic();
m1.magic();
m1.magic();
}
아래는 옛날 방식
class DialPhone{
int? year;
DialPhone(){
print('이 전화기는 다이얼을 돌려서 전화를 겁니다.');
}
void whenCame(){
print("1889년 발명");
}
}
class ButtonPhone extends DialPhone{
ButtonPhone(){
print("이 전화기는 버튼을 눌러서 전화를 겁니다.");
}
@override
void whenCame(){
print("1963년 발명");
}
}
class SmartPhone extends ButtonPhone{
String? manufacturer;
String? model;
SmartPhone(String manufacturer, String model, int year){
this.manufacturer = manufacturer;
this.model = model;
this.year = year;
print("이 전화기는 터치를 해서 전화를 겁니다.");
}
@override
void whenCame(){
print("1993년 처음 등장");
}
}
void main(){
SmartPhone s1 = SmartPhone("제조사:삼성", "모델명:겔럭시 S20", 2020);
print(s1.manufacturer.toString() + s1.model.toString() + s1.year.toString());
s1.whenCame();
}
'플로터(Flutter) > 기본' 카테고리의 다른 글
(코딩쉐프) 조금 매운 맛 3강 ~ 5강 (로그인과 주사위앱) (0) | 2023.01.17 |
---|---|
(코딩쉐프) 조금 매운 맛 2강 (버튼에 따라 증감하는 앱) (0) | 2023.01.16 |
(코딩쉐프) 순한 맛 시즌 2 - 반응형으로 만드는 유튜브(모바일,데스크톱) (0) | 2023.01.12 |
(코딩쉐프) 순한 맛 시즌 2 - 리스트뷰빌더(페이지 데이터 넘기기) (0) | 2023.01.12 |
안드로이드 스튜디오, Dart 편집 단축키 (0) | 2023.01.12 |