Duvida

0 respostas
F

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();
    }
}
  1. 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:

Criado 28 de janeiro de 2008
Respostas 0
Participantes 1