bob wrote:
> Jeg prøver at lave en to lags application. I det første lag 
> "Applications laget" er alle typer simple interfaces som fx:
> 
> interface IShop {
>    List<IEmployee> getEmployees();
> }
> 
> Det er først i laget nedenunder at disse interfaces implementeres og 
> evt. extendes:
> 
> interface IBigShop extends IShop {
>    int getRooms()
> 
> }
> 
> class BigShop implements IBigShop {
> 
> // Inherited
>  List<IEmployee> getEmployees() {
> 
> }
> 
> int getRooms(){
>  //...
> }
> 
> 
> 
> 
> Nu vil jeg gerne have at "getEmployee()" skal returnere en klasse der 
> implementere et nedarvet interface af IEmployee. getEmployees() i 
> BigShop bliver derfor:
> 
>  List<IBigEmployee> getEmployees() {
> 
> }
> 
> Men der er no go! Jeg kan ikke ændre returværdien fra base interfacet.
Det er korrekt.
http://www.ibm.com/developerworks/java/library/j-jtp01255.html
har en forklaring.
> Umiddelbart tænker jeg at jeg blot vil lave:
> 
> interface IShop {
>    List<IEmployee> getEmployees();
> }
> 
> om til:
> 
> interface IShop {
>    List getEmployees();
> }
> 
> Men er det måden at løse dette på?
Det er en måde.
En anden måde er:
interface IShop {
    List<? extends IEmployee> getEmployees();
}
Arne