ola galera,queria saber se é certo este raciocinio deste código abaixo:
import java.io.IOException;
class Base {
int i;
Base() {
add(1);
System.out.println(" Super " + i);
}
void add(int v) {
i += v;
System.out.println(" Super " + i);
}
void print() { System.out.println(i); }
}
class Extension extends Base {
Extension() {
add(2);
System.out.println(" Sub " +i);
}
void add(int v) {
i += v*2;
}
}
public class NovoClass {
public static void main(String[] args) {
bogo(new Extension());//1)
}
static void bogo(Base b) {
b.add(8);
b.print();
}
}
- faz chamada atraves de super() chegando na classe Base.Aqui ao invez de chamar o metodo add(int v) da classe Base chama o da classe Extension porque trata-se de sobrescricao,logo a variavel de instancia recebe 2,assim imprime super 2.
2)Agora finaliza seu construtor da classe Extension executando o metodo
void add(2) que fara que a varaivel de istancia seja agora 6,pois
i=2+v=2*2
e por ultimo chama o metodo novamente imprimindo 22
È isso mesmo??A sacada aqui é a sobrescricão ou viajei?? :roll: