Difference between revisions of "Polimorfismo, Interfaces, Classes Abstractas/Editor gráfico sem classes abstractas"

From Wiki**3

< Polimorfismo, Interfaces, Classes Abstractas
(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.
  
<java5>
+
<source lang="java">
 
public class Forma {
 
public class Forma {
 
   public void desenha() {
 
   public void desenha() {
Line 9: Line 9:
 
   }
 
   }
 
}
 
}
</java5>
+
</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.
<java5>
+
<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{}
</java5>
+
</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.
<java5>
+
<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();
 
   }
 
   }
 
}
 
}
</java5>
+
</source>
  
 
[[category:Ensino]]
 
[[category:Ensino]]
 
[[category:PO]]
 
[[category:PO]]
 
[[category:PO Exemplos]]
 
[[category:PO Exemplos]]

Latest revision as of 19:21, 29 October 2019

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();
  }
}