Estou resolvendo o exercio 10.10 do Deitel 6ªed.
Trata-se de um polimorfismo q envolve Formas. Formas bi e tridimensionais.
Fiz todas as classes.
Só que nem todas as classes estao retornando o valor.
Minha classe Tetraedro so retorna a resposta do método obterArea(), mas o obterVolume() nao…
[code]public abstract class Forma {
protected double base;
protected double altura;
protected double raio;
public Forma(double b, double a){
base = b;
altura = a;
}
public Forma (double r){
raio = r;
}
public double getBase() {
return base;
}
public void setBase(double base) {
this.base = base;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
public double getRaio() {
return raio;
}
public void setRaio(double raio) {
this.raio = raio;
}
}
[/code]
[code]package formas;
public abstract class FormaBidimensional extends Forma{
public FormaBidimensional(double b, double a){
super(b,a);
}
public FormaBidimensional(double r){
super(r);
}
public abstract double obterArea();
public String toString(){
return String.format("Área: %s", obterArea());
}
}
[/code]
[code]package formas;
public abstract class FormaTridimensional extends Forma{
public FormaTridimensional(double b, double a){
super(b,a);
}
public FormaTridimensional(double r){
super(r);
}
public abstract double obterArea();
public abstract double obterVolume();
public String toString(){
return String.format("Área: %s Volume: %s", obterArea(), obterVolume());
}
}
[/code]
[code]package formas;
public class Tetraedro extends FormaTridimensional {
private double alturaBase;
public Tetraedro (double b, double a, double aBase){
super(b,a);
alturaBase = aBase;
}
public double obterArea(){
double area = 4 * ((base*base)* Math.sqrt(3))/4;
return area;
}
public double obterVolume(){
double volume = 1/3 * ((base * alturaBase/2) * altura);
return volume;
}
public String toString(){
return String.format("Tetraedro - %s",super.toString());
}
}
[/code]