(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...") |
|||
Line 3: | Line 3: | ||
A definição de subclasses permite, no entanto, distinguir os objectos. | A definição de subclasses permite, no entanto, distinguir os objectos. | ||
− | < | + | <source lang="java"> |
public class Forma { | public class Forma { | ||
public void desenha() { | public void desenha() { | ||
Line 9: | Line 9: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
As subclasses, neste caso muito simples, limitam-se a especializar o nome do conceito base. | As subclasses, neste caso muito simples, limitam-se a especializar o nome do conceito base. | ||
− | < | + | <source lang="java"> |
public class Quadrado extends Forma{} | public class Quadrado extends Forma{} | ||
public class Triângulo extends Forma{} | public class Triângulo extends Forma{} | ||
public class Círculo extends Forma{} | public class Círculo extends Forma{} | ||
− | </ | + | </source> |
O editor cria um vector de formas e preenche-o com formas escolhidas aleatoriamente. | O editor cria um vector de formas e preenche-o com formas escolhidas aleatoriamente. | ||
− | < | + | <source lang="java"> |
class Editor { | class Editor { | ||
public static Forma formaAleatória() { | public static Forma formaAleatória() { | ||
Line 32: | Line 32: | ||
public static void main(String args[]) { | public static void main(String args[]) { | ||
Forma fv[] = new Forma[9]; | Forma fv[] = new Forma[9]; | ||
− | for (int i = 0; i < fv.length; i++) | + | for (int i = 0; i < fv.length; i++) |
fv[i] = formaAleatória(); | fv[i] = formaAleatória(); | ||
for (Forma f: fv) f.desenha(); | for (Forma f: fv) f.desenha(); | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
[[category:Ensino]] | [[category:Ensino]] | ||
[[category:PO]] | [[category:PO]] | ||
[[category:PO Exemplos]] | [[category:PO Exemplos]] |
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.
public class Forma {
public void desenha() {
System.out.println("dd");
}
}
As subclasses, neste caso muito simples, limitam-se a especializar o nome do conceito base.
public class Quadrado extends Forma{}
public class Triângulo extends Forma{}
public class Círculo extends Forma{}
O editor cria um vector de formas e preenche-o com formas escolhidas aleatoriamente.
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();
}
}