(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...") |
(No difference)
|
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>