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.