Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1 public interface JanelaImplementada { 2 3 void desenharJanela(String titulo); 4 5 void desenharBotao(String titulo); 6 7 } 01 public class JanelaWindows implements JanelaImplementada { 02 03 @Override 04 public void desenharJanela(String titulo) { 05 System.out.println(titulo + " - Janela Windows"); 06 } 07 08 @Override 09 public void desenharBotao(String titulo) { 10 System.out.println(titulo + " - Botão Windows"); 11 } 12 13 } 01 public abstract class JanelaAbstrata { 02 03 protected JanelaImplementada janela; 04 05 public JanelaAbstrata(JanelaImplementada j) { 06 janela = j; 07 } 08 09 public void desenharJanela(String titulo) { 10 janela.desenharJanela(titulo); 11 } 12 13 public void desenharBotao(String titulo) { 14 janela.desenharBotao(titulo); 15 } 16 17 public abstract void desenhar(); 18 19 } 01 public class JanelaDialogo extends JanelaAbstrata { 02 03 public JanelaDialogo(JanelaImplementada j) { 04 super(j); 05 } 06 07 @Override 08 public void desenhar() { 09 desenharJanela("Janela de Diálogo"); 10 desenharBotao("Botão Sim"); 11 desenharBotao("Botão Não"); 12 desenharBotao("Botão Cancelar"); 13 } 14 15 } 01 public class JanelaAviso extends JanelaAbstrata { 02 03 public JanelaAviso(JanelaImplementada j) { 04 super(j); 05 } 06 07 @Override 08 public void desenhar() { 09 desenharJanela("Janela de Aviso"); 10 desenharBotao("Ok"); 11 } 12 13 } 1 public static void main(String[] args) { 2 JanelaAbstrata janela = new JanelaDialogo(new JanelaLinux()); 3 janela.desenhar(); 4 janela = new JanelaAviso(new JanelaLinux()); 5 janela.desenhar(); 6 7 janela = new JanelaDialogo(new JanelaWindows()); 8 janela.desenhar(); 9 }
Compartilhar