void main() {
Filme filme1 = Filme("shoping", 4, "3D", 20, "Guardioes da Galaxia", 122);
Sala xd1 = Sala("shoping", 4, "XD", 20);
Filme filme2 = Filme("shoping", 4, "normal", 10, "Shazam", 132);
filme1.calcpreco("3D");
filme1.apresentarsala();
filme1.comecarofilme();
xd1.calcpreco("XD");
xd1.apresentarsala();
filme2.apresentarsala();
filme2.comecarofilme();
}
class Cinema{
String local;
int qtdsalas;
Cinema(this.local,this.qtdsalas);
cinemadados(){
print("O cinema fica em $local e possui $qtdsalas a seu dispor");
}
}
class Sala extends Cinema implements Filmeopc{
String Tipodesala;
int precoing;
Sala(String local,int qtdsalas,this.Tipodesala,this.precoing) : super(local,qtdsalas);
calcpreco(Tipodesala){
if(Tipodesala == "3D" || Tipodesala == "XD"){
precoing += 10 ;
}
return precoing;
}
@override
void apresentarsala(){
print("a sala é $Tipodesala e tem preco de ingresso a: $precoing");
}
@override
void comecarofilme() {
print("ainda nao ha filme para comecar");
}
}
class Filme extends Sala {
String nome;
int duracao;
Filme(String local,int qtdsalas,String Tipodesala,int precoing,this.nome,this.duracao) : super(local, qtdsalas, Tipodesala,precoing) ;
@override
void comecarofilme(){
print("O filme $nome esta comecando");
}
@override
void apresentarsala(){
print("o filme $nome tem duração de $duracao mins, e esta sendo exibido em uma sala $Tipodesala com ingresso a $precoing");
}
}
abstract class Filmeopc{
//apresentar sala
void apresentarsala();
//comecar o filme
void comecarofilme();
}