Duvida com orientação objeto

folks,

não entendi por que o resultado é A e B…

essa orientação objeto está me deixando maluco …alguém tem uma receita

alguem pode me ajudar …

abs

class Superbase{}

class Base extends Superbase{}

class Derived extends Base {}

class CovariantTest1{
	public Base getIt(){
		return new Base();
	}
}

class SubCovariantTest extends CovariantTest1{
// inserir 2 codigos abaixo que compila
	
	
}


a)	public Derived getIt() {
		return new Derived();
	}

b)	public Base getIt(){
		return new Derived();
	}
c)	public SuperBase getIt(){
		return new Base();
	}

d)	public Derived getIt(){
		return  new Base();
	}

------------------------

o de baixo tb …o resultado que deu

class SuperBase{
	void print (SuperBase a){
		System.out.print("Super");
	}
}

class Base extends SuperBase{
	void print (Base b){
		System.out.print("Base");
	}
}
class Derived extends Base{
	static void print (Derived c){
		System.out.print("Derived");
	}
}

public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
       SuperBase a1 = new SuperBase();
       SuperBase b1 = new Base();
       Base c1 = new Derived();
       
       a1.print(new Base());
       b1.print(new Derived());
       c1.print(new Derived());
	}

}

v

v

valeu pela dica e resposta…

Vou estudar mais e entender sobre o assunto estudei o Livro da Kate e pensei que sabia mas vi que tem outros conceitos…

abs