Super

4 respostas
VictorMatuk

Lendo logo no capítulo 2 do Livro Killer bla bla bla do O reilly. Me deparei com algumas dúvidas mas já achei no google a resposta.
Pesquisando sobre a palavra "super" achei o artigo da sun

[list][url]http://download.oracle.com/javase/tutorial/java/IandI/super.html[/url][/list]

If your method overrides one of its superclass's methods, you can invoke the overridden method through the use of the keyword super. You can also use super to refer to a hidden field (although hiding fields is discouraged). Consider this class, Superclass:
public class Superclass {

    public void printMethod() {
        System.out.println("Printed in Superclass.");
    }
}

Here is a subclass, called Subclass, that overrides printMethod():
public class Subclass extends Superclass {

public class Subclass extends Superclass {

    public void printMethod() { //overrides printMethod in Superclass
        super.printMethod();
        System.out.println("Printed in Subclass");
    }
    public static void main(String[] args) {
    	
    Subclass s = new Subclass();
    s.printMethod();	
    }
}

}

Agora, qual a diferença de eu fazer o código acima e fazer o código abaixo?

public class Superclass {
    public void printMethod() {
        System.out.println("Superclass");
    }
}
///////////
public class Subclass extends Superclass {
    public void printMethod() {
        System.out.println("Subclass");
    }
    public static void main(String[] args) {
        Subclass sb = new Subclass();
        sb.printMethod();	
    }

}

O Super pra mim não fez diferença

4 Respostas

pmlm

No exemplo de cima imprime duas linhas - a da super classe chamada pelo super e a da subclasse.

No teu exemplo só imprime a linha da subclasse.

VictorMatuk

Certo e agora com Addnotify, o que isso faz?

public void AddNotify() { super.addNotify(); processStart(); //ignora esse método }

??
Pesquisei que o AddNotify é chamando quando eu instancio um JPanel por exemplo num Jframe, como se fosse o init() do Applet.

VictorMatuk

VictorMatuk:
Certo e agora com Addnotify, o que isso faz?

public void AddNotify() { super.addNotify(); processStart(); //ignora esse método }

??
Pesquisei que o AddNotify é chamando quando eu instancio um JPanel por exemplo num Jframe, como se fosse o init() do Applet.

Ah eu tirei o super.addNotify() e nao senti diferença, então deixei sem =s

pmlm

O super.addNotify chama o addNotify da superclass. Isso fará diferença ou não consoante o código da superclass para esse método…

Criado 6 de agosto de 2010
Ultima resposta 6 de ago. de 2010
Respostas 4
Participantes 2