public class Soldier{ }
public abstract class Squad {
public abstract <T> T getSoldiers();
}
public class Sniper extends Squad{
Soldier soldier;
public Soldier getSoldiers(){
return soldier;
}
}
public class RegularSquad extends Squad{
Soldier captain;
List<Soldier> soldiers;
public List<Soldier> getSoldier(){
List<Soldier> allSoldiers = new ArrayList<>();
allSoldiers.add(captian);
allSoldiers.addAll(soldiers);
return so;
}
}
Czy taka konstrukcja jest poprawna. Chodzi mi tu o dziedziczenie generycznej funkcji getSoldier z Squad. Niby wszystko smiga w mainie, w zależności co sobie stworze RegularSquad czy Sniper to funkcja zwraca mi albo liste albo pojedyńczego żołnierza. Chciałem się dowiedzieć czy taką praktykę można stosować i czy nie niesie za sobą jakiś gorszych konsekwencji.