[Java] Klasy abstrakcyjne, dziedziczenie

Sniegu
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 17 lis 2015, o 00:05
Płeć: Mężczyzna
Lokalizacja: Polsza

[Java] Klasy abstrakcyjne, dziedziczenie

Post autor: Sniegu »

Kod: Zaznacz cały

import java.lang.Math;

public class FiguraProba
{

	public abstract class Figura{
		public abstract double pole();
		public abstract double obwod();
	}

	public abstract class Czworokat extends Figura{
		public double obwod(double bok1, double bok2, double bok3, double bok4)
		{
			return (bok1+bok2+bok3+bok4);
		}
		public abstract double pole();

		
	}

	public class Kwadrat extends Czworokat{
		double bok1;
		public Kwadrat(double bokPodany)
		{
			bok1=bokPodany;
		}
		public double pole(double bok1)
		{return bok1*bok1;}
	}

	public class Prostokat extends Czworokat{
		double bok1,bok2;
		public Prostokat(double bokPodany1, double bokPodany2)
		{
			bok1=bokPodany1;
			bok2=bokPodany2;
		}
		public double pole(double bok1, double bok2)
		{return bok1*bok2;}
	}



	public static void main(String args[] )
	{
		//System.out.println(Math.sin(90*(Math.PI/180)));
	}
}
Cel: Posiadam obiekt kwadratPrzykladowy o boku np 5. I wywolywac z klasy Kwadrat odpowiednia funkcje z klasy Kwadrat do obliczania pola oraz funkcje Obwod z klasy Czworokat do tego kwadratu. Czy jest to mozliwe?
Kompilator pokazuje mi blad :FiguraProba.Prostokat is not abstract and does not ovveride abstract method pole() in FiguraProba.Czworokat."
Niby rozumiem blad ale jak go poprawic aby to mialo rece i nogi i spelnialo zalozenia wypisane wyzej?

Pozdrawiam.
Gouranga
Użytkownik
Użytkownik
Posty: 1588
Rejestracja: 16 maja 2013, o 17:56
Płeć: Mężczyzna
Lokalizacja: Trójmiasto
Podziękował: 11 razy
Pomógł: 245 razy

[Java] Klasy abstrakcyjne, dziedziczenie

Post autor: Gouranga »

a gdzie są konstruktory do tych klas? Gdzie masz konstruktor, który po wywołaniu Kwadrat k1 = new Kwadrat(5); wywoła to jako new Czworokat(5,5);? uporządkuj ten kod solidnie.
ODPOWIEDZ