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.

Revisions

  1. @raphaelcuba raphaelcuba created this gist Aug 21, 2013.
    56 changes: 56 additions & 0 deletions gistfile1.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    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
    */
    }