Dúvida sobre Herança

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 :

[code]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);
}

}[/code]

Classe Triângulo :

[code]
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);
 }

}[/code]

E por fim, a classe main :

[code]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);
}

}[/code]

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.

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.

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