// Abstract classes can't be instantiated.
abstract class Item {
void use();
}
// Classes can implement other classes.
class Chest<T> implements Item {
final List<T> contents;
// Constructors can assign arguments to instance variables using `this`.
Chest(this.contents);
@override
void use() => print('$this has ${contents.length} items.');
}
class Sword implements Item {
int get damage => 5;
@override
void use() => print('$this dealt $damage damage.');
}
// Classes can extend other classes.
class DiamondSword extends Sword {
@override
final int damage = 50;
}
void main() {
// The 'new' keyword is optional.
var chest = Chest<Item>([
DiamondSword(),
Sword(),
]);
chest.use();
for (final item in chest.contents) {
item.use();
}
}
'프로그래밍 > Dart 언어' 카테고리의 다른 글
Dart 언어 : final, const 차이점 (0) | 2021.09.20 |
---|---|
Dart : 전자공시스템(x) 구글이 만든 웹 프로그래밍 언어 (0) | 2021.09.20 |
// Abstract classes can't be instantiated.
abstract class Item {
void use();
}
// Classes can implement other classes.
class Chest<T> implements Item {
final List<T> contents;
// Constructors can assign arguments to instance variables using `this`.
Chest(this.contents);
@override
void use() => print('$this has ${contents.length} items.');
}
class Sword implements Item {
int get damage => 5;
@override
void use() => print('$this dealt $damage damage.');
}
// Classes can extend other classes.
class DiamondSword extends Sword {
@override
final int damage = 50;
}
void main() {
// The 'new' keyword is optional.
var chest = Chest<Item>([
DiamondSword(),
Sword(),
]);
chest.use();
for (final item in chest.contents) {
item.use();
}
}
'프로그래밍 > Dart 언어' 카테고리의 다른 글
Dart 언어 : final, const 차이점 (0) | 2021.09.20 |
---|---|
Dart : 전자공시스템(x) 구글이 만든 웹 프로그래밍 언어 (0) | 2021.09.20 |