Escolha uma Página

Herança e Polimorfismo

28 de abril de 2022
by Cenora
7
class Veiculo {
  void ajustar() => print("Ajustando...");
  void limpar() => print("Limpando...");
  void listarVerificacao() => print("Verificando...");
  void mudarOleo() => print("Troca");
}

class Bicicleta extends Veiculo {
  @override
  String mudarOleo() => "Oleo da corrente...";
}

class Automovel extends Veiculo {
  @override
  String mudarOleo() => "Trocando oleo...";
}

class Oficina {
  void manutencao(Veiculo veiculo) {
    veiculo.ajustar();
    veiculo.limpar();
    veiculo.listarVerificacao();
    //Verifica se v é do tipo Automovel e retorna TRUE
    if (veiculo.runtimeType.toString() == "Automovel") {
      veiculo.mudarOleo();
    } else {
      veiculo.mudarOleo();
    }
  }
}

void main(List<String> args) {
  Veiculo teste = Automovel();
  Oficina of = Oficina();
  of.manutencao(teste);

  Veiculo bike = Bicicleta();
  of.manutencao(bike);
}

Relacionadas, talvez…

Blog em Angular – The End

O que faz de um blog um blog é mostrar os posts logo na página principal. Da forma que configuramos a rota padrão até agora, ArtigosComponent é a página de destino onde deveria ter posts, mas até agora, nada... O Scully fornece o serviço ScullyRoutesService, este,...

PDVSuper

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PDV { public partial class frmPDVSuper :...

Blog em Angular – Parte III

Zero lógica! Nosso blog ainda não tem nenhuma lógica para recuperar posts. Por hora, é apenas uma aplicação Angular tipicamente roteada. Entretanto, justamente por ser roteada, temos a base estável suficiente para adicionar o suporte ao Blog através do Scully. Para...

Share This