class Estojo {
List<Object> itens = [];
void adicionarItem(Object item) {
itens.add(item);
}
void removerItem(Object item) {
itens.removeWhere((element) => element == item);
}
void mostrarItem() {
for (var item in itens) {
print(item);
}
}
}
abstract class CoisaDeApagar {}
abstract class CoisaDeEscrever {
String _marca = "";
String get marca => _marca;
set marca(String marca) {
_marca = marca;
}
void barulho();
}
import 'package:abstracao/coisadeapagar.dart';
class Corretivo implements CoisaDeApagar {}
import 'package:abstracao/coisadeapagar.dart';
class Borracha implements CoisaDeApagar {
String _tipo = "";
String get tipo => _tipo;
set tipo(String tipo) {
_tipo = tipo;
}
}
import 'package:abstracao/coisadeescrever.dart';
class Lapis implements CoisaDeEscrever {
String _tipo = "";
String get tipo => _tipo;
set tipo(String tipo) {
_tipo = tipo;
}
@override
String get marca {
return marca += " de lapis";
}
@override
set marca(String marca) {
marca += " de lapis";
}
@override
void barulho() {
print("chichichichichichi");
}
}
import 'package:abstracao/coisadeescrever.dart';
class Lapiseira implements CoisaDeEscrever {
String _grafite = "";
String get grafite => _grafite;
set tipo(String grafite) {
_grafite = grafite;
}
@override
String get marca {
return marca += " de lapiseira";
}
@override
set marca(String marca) {
marca += " de lapiseira";
}
@override
void barulho() {
print("object");
}
}
import 'package:abstracao/coisadeescrever.dart';
class Caneta implements CoisaDeEscrever {
String _cor = "";
String get cor => _cor;
set cor(String cor) {
_cor = cor;
}
@override
String get marca {
return marca += " da caneta";
}
@override
set marca(String marca) {
marca += " da caneta";
}
@override
void barulho() {
// TODO: implement barulho
}
}
import 'package:abstracao/borracha.dart';
import 'package:abstracao/caneta.dart';
import 'package:abstracao/corretivo.dart';
import 'package:abstracao/estojo.dart';
import 'package:abstracao/lapis.dart';
import 'package:abstracao/lapiseira.dart';
void main(List<String> arguments) {
Estojo tojo = Estojo();
Lapis lp = Lapis();
Lapis pl = Lapis();
Lapiseira la = Lapiseira();
Lapiseira pa = Lapiseira();
Caneta ct = Caneta();
Caneta ca = Caneta();
Borracha b = Borracha();
Borracha r = Borracha();
Corretivo c = Corretivo();
Corretivo t = Corretivo();
tojo.adicionarItem(lp);
tojo.adicionarItem(pl);
tojo.adicionarItem(la);
tojo.adicionarItem(pa);
tojo.adicionarItem(ct);
tojo.adicionarItem(ca);
tojo.adicionarItem(c);
tojo.adicionarItem(r);
tojo.adicionarItem(c);
tojo.adicionarItem(t);
tojo.adicionarItem(b);
tojo.mostrarItem();
}