Witam.
Opisze swój problem:
Posiadam klasę abstrakcyjną Kształt oraz 2 klasy które dziedziczą po sobie Trojkąt oraz Prostokąt. Mam taki interfejs przewidziany:
interface Company
{
Ksztalt zwrocFigure(String typ, int a, int b, int c) throws Wyjatek;
}
W tym celu tworzę nową klasę
class Produkcja implements Company{
public Ksztalt zwrocFigure(String typ, int a, int b, int c) throws Wyjatek{
String name = new String();
name = "Nie powiodlo sie";
boolean ok = (typ=="Prostokat") || (typ=="Trojkat");
if (!ok) throw new Wyjatek(name);
else if (typ=="Prostokat") return new Prostokat(a,b);
else return new Trojkat(a,b,c);
}
}
W tym momencie w tej klasie jest wszystko ok. Ale w mainie wystepuje problem.
Fabryka test = new Fabryka();
To nie chce przejść . Pokazuje ze Fabryka is abstract and cannot be intialized.
Jak poradzic sobie z tym? Czy jest to w ogóle mozliwe zwracanie obiektu klasy pochodnej gdy jest zadeklarowany obiekt klasy abstrakcyjnej?