O teste seguido do erro foi o seguinte:
Quantas formas deseja criar?
1
Escolha a 1ª forma
1 - Quadrado
2 - Retangulo
3 - Circulo
1
Você escolheu criar um quadrado, informe o lado do quadrado:
4
Exception in thread “main” java.lang.NullPointerException
at ExecInterfaces.ProgramaPrincipal.main(ProgramaPrincipal.java:33)
CÓDIGO DA CLASSE main:
package ExecInterfaces;
import java.util.Scanner;
public class ProgramaPrincipal {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int quantiaDeFormas;
int escolhaDaForma;
System.out.println("Quantas formas deseja criar?");
quantiaDeFormas = scan.nextInt();
Quadrado[] quadrado = new Quadrado[quantiaDeFormas];
Retangulo[] retangulo = new Retangulo[quantiaDeFormas];
Circulo[] circulo = new Circulo[quantiaDeFormas];
for(int i = 0; i < quantiaDeFormas; i++){
System.out.println("");
System.out.println("Escolha a " + (i+1) + "ª forma");
System.out.println("1 - Quadrado");
System.out.println("2 - Retangulo");
System.out.println("3 - Circulo");
System.out.println("");
escolhaDaForma = scan.nextInt();
while((escolhaDaForma != 1) || (escolhaDaForma != 2) || (escolhaDaForma != 3)){
switch(escolhaDaForma){
case 1:
System.out.println("Você escolheu criar um quadrado, informe o lado do quadrado: ");
quadrado[i].setLado(scan.nextDouble());
System.out.println("Quadrado criado com sucesso");
break;
case 2:
System.out.println("Você escolheu criar um retangulo, informe a base do retangulo: ");
retangulo[i].setBase(scan.nextDouble());
System.out.println("Agora informe o a altura do retangulo");
retangulo[i].setAltura(scan.nextDouble());
System.out.println("Retangulo criado com sucesso");
break;
case 3:
System.out.println("Você escolheu criar um circulo, informe o raio do circulo: ");
circulo[i].setRaio(scan.nextDouble());
System.out.println("Circulo criado com sucesso");
break;
default:
System.out.println("Opção inválida");
System.out.println("");
System.out.println("Escolha a " + (i+1) + "ª forma");
System.out.println("1 - Quadrado");
System.out.println("2 - Retangulo");
System.out.println("3 - Circulo");
escolhaDaForma = scan.nextInt();
break;
}
}
}
}
}
CÓDIGO DA CLASSE Quadrado:
package ExecInterfaces;
public class Quadrado extends Quadrilateros{
private double lado;
public Quadrado(double l){
this.lado = l;
}
public Quadrado(){
}
public void setLado(double lado) {
this.lado = lado;
}
public double getLado() {
return lado;
}
@Override
public double calcPerimetro() {
return lado * 4;
}
@Override
public double calcArea() {
return lado * lado;
}
}
CÓDIGO DA CLASSE Quadrilatero:
package ExecInterfaces;
public abstract class Quadrilateros implements Calculavel{
private double l1;
private double l2;
private double l3;
private double l4;
public Quadrilateros(double l1, double l2, double l3, double l4){
this.l1 = l1;
this.l2 = l2;
this.l3 = l3;
this.l4 = l4;
}
public Quadrilateros(){
}
public void setL1(double l1) {
this.l1 = l1;
}
public void setL2(double l2) {
this.l2 = l2;
}
public void setL3(double l3) {
this.l3 = l3;
}
public void setL4(double l4) {
this.l4 = l4;
}
public double getL1() {
return l1;
}
public double getL2() {
return l2;
}
public double getL3() {
return l3;
}
public double getL4() {
return l4;
}
}
CÓDIGO DA INTERFACE Calculavel:
package ExecInterfaces;
public interface Calculavel {
public double calcPerimetro();
public double calcArea();
}
Desde já agradeço a ajuda pessoal 