Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2013, 19:39
givanrg
 
Fecha de Ingreso: enero-2012
Ubicación: México
Mensajes: 27
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Duda con Herencia en JAVA

Hola que tal, estoy haciendo unos ejercicios con herencia y me estan saliendo dudas que me gustaria me aclararan antes de seguir con mas ejercicios. Tengo mi superclase figuras que es esta:

Código:
public abstract class Figuras2{
	
	private double base;
	private double altura;
	
	
	public Figuras2(){
		base=0;
		altura=0;
	}
	
	public Figuras2(double BASE,double ALTURA){
		
		base=BASE;
		altura=ALTURA;
		
	}
	
	public void setBase(double BASE){
		base=BASE;
	}
	
	public void setAltura(double ALTURA){
		altura=ALTURA;
	}
		
	
	public double getBase(){
		return base;	
	}
	
	public double getAltura(){
		return altura;
	}
	
	
	
	public abstract double area();
		

}
Esta es mi subclase de la anterior:

Código:
public class Rectangulo extends Figuras2{
	
	private double base;
	private double altura;
	
	public Rectangulo(){
		  
	}
	
	public Rectangulo(double BASE,double ALTURA){
		
		super (BASE,ALTURA);	
	}
	
	
	public double area(){
		
		return getBase() * getAltura();
		
	}

}
Y mi clase principal que es esta:

Código:
public class TestFiguras2{
	
	public static void main(String[]args){
		
		
		Figuras2 f2=new Rectangulo(7,8);

		
	   	System.out.println("El area del rectangulo es de " + f2.area());
	}
}

Mis dudas son las siguientes:

1.-Siempre en la superclase debe haber un metodo abstracto? en este caso mi metodo area

2.-Que hacen las siguientes lineas de codigo ya que si las comento o elimino sigue funcionando sin errores el programa

Código:
public void setBase(double BASE){
		base=BASE;
	}
	
	public void setAltura(double ALTURA){
		altura=ALTURA;
	}
3.-Y por ultimo, a la superclase se le debe de poner la palabra abstract o no es necesario? ya que vi un ejemplo en internet donde no le ponen la palabra y solo a la subclase si le ponen extends de la otra clase

Bueno espero me puedan ayudar con estas dudas que tengo y gracias de antemano.