Witam.
Mam problem z policzeniem sumy pól figur w klasach dziedziczących klasę abstrakcyjną figura.
Program powinien mieć możliwość zliczenia oraz wyświetlenia ilości wszystkich figur oraz każdego rodzaju z osobna.
Myślałem nad tym, żeby metoda zaimplementowana z interfejsu zliczała każde wyjście z danej klasy i je sumowała, ale nie mam pojęcia jak się za to zabrać.
Wszystko co zrobiłem do tej pory:
public abstract class Figura {
public abstract void licz_pole();
public abstract void licz_obwód();
}
public class Prostokąt extends Figura{
private int a;
private int b;
private double pole;
private double obwód;
public Prostokąt(int a,int b) {
this.a=a;
this.b=b;}
public Prostokąt(){
this(0,0);}
public int getA() {
return a;}
public void setA(int a) {
this.a = a;}
public int getB() {
return b;}
public void setB(int b) {
this.b = b;}
public double getPole() {
return pole;}
public void setPole(double pole) {
this.pole = pole;}
public double getObwód() {
return obwód;}
public void setObwód(double obwód) {
this.obwód = obwód;}
@Override
public void licz_pole() {
setPole(this.a*this.b); }
@Override
public void licz_obwód() {
setObwód(2*(a+b));}
@Override
public String toString() {
return "Prostokąt o bokach " + a + " " + b + " , pole= " + pole + " , obwód= " + obwód;}}
public class Koło extends Figura{
private int r;
private double pole;
private double obwód;
public Koło(int r) {
this.r=r;}
public Koło(){
this(0); }
@Override
public void licz_pole() {
setPole((r*r)*3.14);}
@Override
public void licz_obwód() {
setObwód(2*3.14*r);}
public int getR() {
return r;}
public void setR(int r) {
this.r = r;}
public double getObwód() {
return obwód;}
public void setObwód(double obwód) {
this.obwód = obwód;}
public double getPole() {
return pole;}
public void setPole(double pole) {
this.pole = pole;}
@Override
public String toString() {
return "Koło o promieniu " + r + ", pole= " + pole + ", obwód= " + obwód;}}
public class Starter {
public static void main(String[] args) {
// TODO Auto-generated method stub
Prostokąt p1=new Prostokąt(5,6);
p1.licz_pole();p1.licz_obwód();
System.out.println(p1);
Prostokąt p2=new Prostokąt(5,7);
p2.licz_pole();p2.licz_obwód();
System.out.println(p2);
Koło k1=new Koło(5);
k1.licz_pole();k1.licz_obwód();
System.out.println(k1);
Koło k2=new Koło(2);
k2.licz_pole();k2.licz_obwód();
System.out.println(k2);
}}