Polimorfismo, Interfaces, Classes Abstractas/Editor gráfico sem classes abstractas

From Wiki**3

< Polimorfismo, Interfaces, Classes Abstractas
Revision as of 11:38, 22 October 2013 by Root (talk | contribs) (Created page with "Neste exemplo, o editor de formas apresenta polimorfismo, mas não tem classes abstractas. A definição de subclasses permite, no entanto, distinguir os objectos. <java5> publ...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Neste exemplo, o editor de formas apresenta polimorfismo, mas não tem classes abstractas.

A definição de subclasses permite, no entanto, distinguir os objectos.

<java5> public class Forma {

 public void desenha() {
   System.out.println("dd");
 }

} </java5>

As subclasses, neste caso muito simples, limitam-se a especializar o nome do conceito base. <java5> public class Quadrado extends Forma{} public class Triângulo extends Forma{} public class Círculo extends Forma{} </java5>

O editor cria um vector de formas e preenche-o com formas escolhidas aleatoriamente. <java5> class Editor {

 public static Forma formaAleatória() {
   switch ((int)(Math.random()*3)) {
     default:
     case 0: return new Círculo();
     case 1: return new Quadrado();
     case 2: return new Triângulo();
   }
 }
 public static void main(String args[]) {
   Forma fv[] = new Forma[9];
   for (int i = 0; i < fv.length; i++) 
     fv[i] = formaAleatória();
   for (Forma f: fv) f.desenha();
 }

} </java5>