Java - Parametr pro dvě třídy se stejným prapředkem?
Dobrý den,
Řekněme, že mám dvě vlastní třídy a HBox a VBox, které mají společného prapředka (Pane). Jak, prosím Vás, upravím metodu, aby akceptovala objekty obou tříd? Děkuji
public class HBox extends javafx.scene.layout.HBox {
public HBox(double x, double y) {
super();
setLayoutX(x);
setLayoutY(y);
}
}
public class VBox extends javafx.scene.layout.VBox {
public VBox(double x, double y) {
super();
setLayoutX(x);
setLayoutY(y);
}
}
public HBox createLayout(double x, double y) {
var hbox = new HBox(x,y);
//CODE
return hbox;
}
Definujes spolecne rozhrani tech trid. Instance tohoto rozhrani pak bude na vstupu tvoji metody. To je Java 101…
PS.: Asi taky neni nutne, aby tvoje tridy dedily z nejakych knihovnich trid. Daleko lepsi reseni by byla kompozice...
Tohle jsem napsal ryze jako příklad. Jde o to, že třídy se liší pouze v typu layout. A jednodušší je to dát do samostatných tříd. A už jsem dělal něco obdobného s Path a funguje to
Tady však vracím ArrayList a obě třídy mají společného předka (ne až prapředka)
PS. A v čem je lepší kompozice?