import java.util.Collection; 

public abstract class A { 

public abstract class R<T> { } 

public abstract <X> R<X> get(String p); 

public abstract <Y> R<Y> get2(Collection<String> p); 

public class B extends A { 

@Override 
public R<String> get(String p) { 
return null; 
} 

@Override 
public R<Double> get2(Collection<String> p) { 
return null; 
}	
} 
} 