-
Notifications
You must be signed in to change notification settings - Fork 0
/
class_extends.dart
66 lines (52 loc) · 1.78 KB
/
class_extends.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import 'model/user_model.dart';
void main(List<String> args) {
final userNormal = User('lb', 15);
final userBank = BankUser('name', 155);
final userSpeal = SpecialUser('dsadfsad', 545, 4546, 30);
userNormal.sayMoneyWithCompanyName();
userBank.sayMoneyWithCompanyName();
userSpeal.sayMoneyWithCompanyName();
}
// paralarını görebilmelerini istiyorum benim banka ismim ile birlikte.
abstract class IUser {
final String name;
final int money;
IUser(this.name, this.money);
void sayMoneyWithCompanyName() {
print('$name- $money paranız var');
}
}
class User extends IUser {
//final String name;
//final int money; bunları artık tanımlamana gerek yok zaten Iserda extend edildiği için constracter da this.name yerine String name yatın mı tamamdır.
User(String name, int money)
: super(name,
money); // süper Iser dan türediği için name ve money i taşımaya yarar.
}
class BankUser extends IUser {
// final String name;
// final int money;
// BankUser(this.name, this.money) : super(name, money);
BankUser(String name, int money) : super(name, money); // taaak tek satır.
void bankSpecialLogic() {
print(money);
}
}
class SpecialUser extends IUser {
// final String name;
// final int money;
// final int bankingCode;
late final int _disccount;
// SpecialUser(this.name, this.money, this.bankingCode, int disccount)
// : super(name, money) {
// }
SpecialUser(String name, int money, int bankingCode, int disccount)
: super(name, money) {
_disccount = disccount;
}
// indirimli fiyatım ne kadar
int get calculateMoney => money - (money ~/ _disccount);
// int calculateMoney() {
// return money -( money ~/ _disccount);
// }
}