Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90
Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exemplo de interface e polimorfismo em Java - A interface Forma e as classes Retangulo e Circulo - Exercícios Resolvidos de Java

Quantidade de visualizações: 567 vezes
Pergunta/Tarefa:

O objetivo deste exercício é demonstrar como podemos usar polimorfismo para manipular dois objetos diferentes a partir de uma interface em comum. Para isso, crie uma interface Forma contendo dois métodos: area() e perimetro().

Em seguida crie as classes Retangulo e Circulo, que implementam a interface Forma e fornecem suas próprias implementações para os métodos area() e perimetro(), ou seja, demonstre que as formas de calcular a área e o perímetro são diferentes entre os dois objetos.

Para finalizar, na classe principal da aplicação Java, crie objetos das classe Retangulo e Circulo e use um objeto da interface Forma para representá-los. Atenção: é permitido criar apenas uma variável do tipo Forma para acessar os dois objetos. Ao fazer isso você estará, obrigatoriamente, usando polimorfismo.

Sua saída deverá ser parecida com:

Base do retângulo: 5
Altura do retângulo: 3
A área do retângulo é: 15.0
O perímetro do retângulo é: 16.0

Raio do círculo: 4
A área do círculo é: 50.26548245743669
O perímetro do círculo é: 25.132741228718345 
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

O primeiro passo é a criação da interface Forma, que declara os métodos area() e perimetro():

package estudos;

// definição da interface Forma
public interface Forma {
  // método que calcula a área
  double area();
  // método que calcula o perímetro
  double perimetro();
}

Em seguida criamos a classe Retangulo, que implementa a interface Forma e fornece sua própria implementação para os métodos area() e perimetro():

package estudos;

// definição da classe Retangulo, que implementa
// a interface Form
class Retangulo implements Forma {
  private double base;
  private double altura;

  // construtor da classe Retangulo
  public Retangulo(double base, double altura) {
    this.base = base;
    this.altura = altura;
  }

  // vamos sobrescrever o método area() definido na
  // interface Forma
  @Override
  public double area() {
    return this.base * this.altura;
  }

  // vamos sobrescrever o método perimetro() definido na
  // interface Forma
  @Override
  public double perimetro() {
    return 2 * (this.base + this.altura);
  }
}

Em seguida criamos a classe Circulo, que também implementa a interface Forma e sobrescreve os métodos area() e perimetro(), ou seja, fornece sua própria implementação desses métodos:

package estudos;

// definição da classe Circulo, que implementa a
// interface Forma
class Circulo implements Forma {
  private double raio;

  // construtor da classe Circulo
  public Circulo(double raio) {
    this.raio = raio;
  }

  // vamos sobrescrever o método area() da
  // interface Forma
  @Override
  public double area() {
    return Math.PI * this.raio * this.raio;
  }

  // vamos sobrescrever o método perimetro() da
  // interface Forma
  @Override
  public double perimetro() {
    return 2 * Math.PI * this.raio;
  }
}

Finalmente nós criamos a classe principal que nos permitirá criar um retângulo e um círculo e mostramos suas áreas e perímetros. Note o uso de uma variável do tipo Forma para acessar os objetos Retangulo e Circulo. Isso é polimorfismo ao vivo e a cores:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // uma referência para a interface Forma 
    Forma forma;
    
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);

    // vamos pedir para o usuário informar a base e a
    // altura do retângulo
    System.out.print("Base do retângulo: ");    
    double base = Double.parseDouble(entrada.nextLine());
    System.out.print("Altura do retângulo: ");    
    double altura = Double.parseDouble(entrada.nextLine());
    
    // agora criamos um objeto da classe Retangulo. Note que a
    // a variável é do tipo da interface Forma
    forma = new Retangulo(base, altura);
    
    // e mostramos a área e o perímetro do retângulo
    System.out.println("A área do retângulo é: " + forma.area());
    System.out.println("O perímetro do retângulo é: " + forma.perimetro());
    
    // vamos pedir para o usuário informar o raio do círculo
    System.out.print("\nRaio do círculo: ");    
    double raio = Double.parseDouble(entrada.nextLine());
    
    // agora criamos um objeto da classe Circulo. Note que a
    // a variável é do tipo da interface Forma
    forma = new Circulo(raio);
    
    // e mostramos a área e o perímetro do circulo
    System.out.println("A área do círculo é: " + forma.area());
    System.out.println("O perímetro do círculo é: " + forma.perimetro());
  }
}


Link para compartilhar na Internet ou com seus amigos:

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.