Duvida herança...instanceof ..?

1 resposta
P

Caros,

não entendi as linhas abaixo porque essas saida :

b1.print(new Derived());
c1.print(new Derived());
class SuperBase {
	
	 void print(SuperBase a){
			System.out.println("Super");
		}

}

public class Base extends SuperBase {

	void print(Base b){
		System.out.println("Base");
	}
}
package xyz;

public class Derived extends Base {
	
	static void print(Derived d){
		System.out.println("Derived");
	}

	public static void main (String[] args){
		
		SuperBase a1= new SuperBase();
		SuperBase b1= new Base();
		Base c1= new Derived();
		a1.print(new Base());
		b1.print(new Derived());
		c1.print(new Derived());
	}
}

outra duvida no exemplo abaixo a resposta deu truetrue

vendo a resposta do exemplo na internet deu none of these

public static void main(String[] args) {
		// TODO Auto-generated method stub

		Collection<String> arr= new ArrayList<String>();
		ArrayList <Integer> arr1= new ArrayList<Integer>();
		arr.add("ABC");
		arr.add("XYZ") ;
		arr1.add(1);
		arr1.add(2);
		System.out.println(arr instanceof Collection);
		System.out.println(arr.getClass()== arr1.getClass());		
what is result of compiling and running the following code?

a) Compile erroe line 6 and 7
b)Compile erroe line 9 and 8
c)Prints truetrue
d)Prints truefalse
e)Prints falsefalse
f)Prints falsetrue
g)none of these
-----------------------------------------------------------


		
	}

1 Resposta

T

Cara é o seguinte,
na sua primeira pergutar ele vai responder assim:

Código:

SuperBase a1= new SuperBase(); SuperBase b1= new Base(); Base c1= new Derived();

No tempo de execução vai funcionar assim: Crio uma variável de referencia chamada a1 ela faz referencia a Super classe, mas quando eu do um new Classe. ele vai fazer referencia a classe que está a frente new, por exemplo:

em tempo de execução quando você for usar a variável b1 que é do tipo SuperBase mas é instaciada como Base porquê Base é uma SuperBase. ou seja ele vai chamar os metodos objetos da Referencia.

Segunda pergunta. retorna True porquê todo ArrayList é um Collection e retorna True novamente, porque em tempo de execução os dois objetos são do tipo arrayList.

Espero ter ajudado!

Criado 13 de outubro de 2008
Ultima resposta 14 de out. de 2008
Respostas 1
Participantes 2