Buscar

08_-_Heranca_03_-_Sobrescricao-Final-Super

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Thiago Rodrigues POO 1
Sobrescrição de Métodos
• Quando se define uma subclasse, freqüentemente é necessário
substituir um ou mais métodos por outros mais específicos a esta
subclasse;
• Para sobrescrever um método herdado pela subclasse, basta criar um
método com o mesmo nome e mesma lista de parâmetros;
Thiago Rodrigues POO 2
Polimorfismo x Sobrescrição
• Quando um método herdado é sobrescrito na classe filha, ocorre a
substituição no método sobrescrito na classe descendente;
package classe; //possui um método que
public class JMae{ //inicializa um atributo
protected int idade;
public void set(int x){
this.idade = x;
System.out.println(“idade:"+this.idade);}
}
package classe;
import classe.JMae; //possui um método que
public class JFilha extends JMae{ //sobrescreve o herdado e 
public void set(int x){ //inicializa o atributo
if(x >= 0) //com um valor >= zero
this.idade = x;
else
this.idade = 0;
System.out.println("x:"+this.idade);}
}
Thiago Rodrigues POO 3
import classe.JMae;
import classe.JFilha;
public class JMain{
public static void main(String args[]){
JMae objM;
objM = new JFilha();
objM.set(-1);
}
}
setM(int x)
setF(int x)
JMae objM
JFilha objF
Método da classe JFilha
Thiago Rodrigues POO 4
package classes;
public class Jmae{
public void imprime(){
System.out.println(“Classe JMae”);
}}
import classes.Jmae;
public class Jfilha extends Jmae{
public void imprime(){
System.out.println(“Classe JFilha”);
}}
import classes.Jmae;
import classes.Jfilha;
public JMain{
public static void main(String args[]){
Jmae obj = new Jmae();
obj.imprime();
obj = new Jfilha();
obj.imprime();
}}
polimorfismo
Thiago Rodrigues POO 5
Métodos e Classes final
• Métodos especificados como final não podem ser sobrescritos;
• Classes especificadas pela cláusula final não podem ser superclasses;
package classes;
public class Jmae{
public final void imprime(){
System.out.println(“Classe JMae”);}}
import classes.Jmae;
public class Jfilha extends Jmae{
public void imprime(){
System.out.println(“Classe JFilha”);}} //erro
package classes;
public final class Jmae{
public void imprime(){
System.out.println(“Classe JMae”);}}
import classes.Jmae;
public class Jfilha extends Jmae{
// erro – classe Jmae é final
}
Thiago Rodrigues POO 6
Herança e Construtores
• Construtores não são herdados pelo mecanismo de herança;
• Para uma classe ser instancializada, as classes ancestrais também devem
ser instancializadas,
JMae JFilha JNeta
• Quando só existe o construtor padrão, este é invocado implicitamente pelo
construtor da classe filha – primeira instrução;
• Entretanto, quando existe um construtor com algum parâmetro, este tem de
ser invocado explicitamente, através da cláusula super;
Thiago Rodrigues POO 7
package PCK;
public class JMae {
protected int x;
public int getX() {
return x;
}
public JMae(int x) {
this.x = x;
}
}
package PCK;
public class JFilha extends JMae {
protected float y;
public float getY() {
return y;
}
public JFilha(int x, float y) {
super(x);
this.y = y;
}
}
Thiago Rodrigues POO 8
Cláusula super
• Objetivo de invocar um método da classe mãe. Útil quando queremos
“incrementar” um método herdado e não simplesmente sobrecrevê-lo;
package classe; //possui um método que
public class JMae{ //inicializa um atributo
protected int x;
public void set(int x){
this.x = x;
System.out.println("x:"+this.x);}
}
package classe; //possui um método que
import classe.JMae; //inicializa dois atri
public class JFilha extends JMae{ //butos sendo um herda
protected int y; //do (sobrecarga)
public void set(int x, int y){
super.set(x);
this.y = y;
System.out.println("y:"+this.y); }
}
Método da classe JMae

Outros materiais