Skip to content

Instantly share code, notes, and snippets.

@cubaraphael
Created August 21, 2013 17:52
Show Gist options
  • Select an option

  • Save cubaraphael/6297681 to your computer and use it in GitHub Desktop.

Select an option

Save cubaraphael/6297681 to your computer and use it in GitHub Desktop.
public class Pessoa {
private String nome;
private int velocidade;
// getters e setters...
/*
* Repare nos nomes dos metodos e construtores!
*/
// Construtor da classe Pessoa
public Pessoa () {
this.nome = 'Nome Padrão';
}
// Caso eu queira poder construir uma Pessoa passando um nome
// posso fazer usar a sobrecarga de metodo
public Pessoa(String nome) {
this.nome = nome;
}
// outro exemplo de sobrecarga...
public void andar () {
System.out.println("Estou andando a " + this.velocidade + " por hora!");
}
// agora eu achei melhor criar o mesmo metodo andar, só que agora passando a velocidade pelo paramentro
public void andar (int velocidade) {
System.out.println("Estou andando a " + velocidade + " por hora!");
}
}
// em outro arquivo...
public class Homem extends Pessoa {
/*
* Aqui esta o exemplo da sobrescrita de metodos
* Só é possível fazer sobrescrita de método, quando a gente extende de alguma classe
* e esse metodo não seja final (no Java a palavra reservada final diz que algo não pode ser alterado)
*/
// Como nós somos homens, nós corremos mais, então eu posso sobrescrever o metodo andar pra gente andar mais rapido
public void andar () {
System.out.println("Metodo sobrescrito, agora eu corro 2x mais! Veja: " + this.getVelocidade());
}
/*
* O metodo andar foi sobrescrito.
* Resumindo: sobrecarga é quando você escreve 2 métodos ou mais com o mesmo nome, mas para que não
* ocorra erro, você precisa que os métodos tenham parametros diferentes!
* Sobrescrita de método é quando você tem um caso de herança e resolve sobrescrever o comportamento da classe Pai
*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment