Dúvida sobre Herança

3 respostas
ThePianist

Boa noite, galera. Minha dúvida é a seguinte:

Fiz um programinha simples pra calcular a área do paralelogramo. No método "dados" da classe "Figura" onde recebo os dados via teclado (como verão a seguir) ja calculo a área desse paralelogramo.

Pois bem. Tenho que calcular agora a área do Triângulo. Minha idéia foi criar uma classe "triângulo" que herdasse as caracteristicas de "Figura" , mas com um método destinado a calcular a area do triangulo.

O problema é que o programa exibe a área do Paralelogramo corretamente. Mas a área do Triangulo resulta sempre em zero ( 0,0 ).

Desde já, agradeço.

Classe Figura :
import java.util.Scanner;


public class Figura {
	
	public float base, b;
	public float altura;
	public float area, a; 
	
	public void dados(){
		Scanner t= new Scanner(System.in);
		System.out.println("Entre com a base: ");
		base = t.nextFloat();
		System.out.println("Entre com a altura: ");
		altura = t.nextFloat();
		area =  base * altura;
	}
	
	public void print(){
		System.out.println(area);
	}
}
Classe Triângulo :
public class Triangulo extends Figura{
     private float ar;
	 
     public void printar(Float a, Float b){
    	 a= altura;
    	 b= base;
    	 ar = (b * a) /2 ;
    	 System.out.println(ar);
     }


}
E por fim, a classe main :
public class Main {
	
	public static void main(String args[]){
		Figura a1;
		a1 = new Figura();
		a1.dados();
		a1.print();
		
	    Triangulo a2;
	    a2 = new Triangulo(); 
	    a2.printar(null, null);
	}

}

3 Respostas

kdoigor

vc tem que chamar o metodo “dados” no objeto a2.

public void printar(){ ar = (base * altura) /2 ; System.out.println(ar); }

public static void main(String args[]){ Triangulo a2 = new Triangulo(); a2.dados(); a2.printar(); }

dessa forma vc define os valores de base e altura do objeto pai e chama o metodo do filho.

ThePianist

kdoigor

Vlw cara. Funcionou aqui. Faltou chamar o método dados para o objeto a2 msm.

Muito obrigado.

thejokerbm

Vlw pela sugestão cara. Inicialmente ue pensei em fazer assim como vc disse msm: Usando uma classe para cada figura e uma classe a parte chamada “Figura” . São nao lembrei da questão do “abstract”.

E sobre interface… bem, esse é um outro problema que eu tenho hehe Não tenho certeza se entendi muito bem o conceito de interface. Mas vou tentar aqui. qualquer coisa posto de novo.

T

pow amigo vou tentar te ajudar

axo que o certo para seu problema seria vc usar uma classe abstrata Figura com o metodo abstrato area(), depois vc criaria as 2 que vc quer tipo Paralelograma extendendo Figura e Triangulo extendendo Figura tb, e implementaria o metodo area() conforme cada classe. e usaria polimorfismo do seu main.

ps* vc pode fazer com interface tb.

agora se vc so quer usar os dados do paralelograma para calcular do triangulo, vc deve usar um getArea no parelelograma

vlw

Criado 12 de abril de 2011
Ultima resposta 12 de abr. de 2011
Respostas 3
Participantes 3