Classes – Inheritance, Override e This – Java

Publicado: 16 de fevereiro de 2014 em Java

Inheritance (herança)

Programação orientada a objetos permite que classes possam herdar estados e comportamentos comuns usados de outras classes. Neste exemplo, bicicleta torna-se agora a superclasse de MountainBike. Na linguagem de programação Java, cada classe é permitido ter uma superclasse direta, e cada superclasse tem o potencial para um número ilimitado de subclasses.

Override

Métodos Override (substituição), em programação orientada a objeto, é um recurso de linguagem que permite que uma subclasse ou classe filha possa fornecer uma implementação específica de um método que já é fornecido por uma de suas superclasses ou classes pai.

A implementação Override das subclasses substitui a implementação na superclasse, fornecendo um método que tem o mesmo nome, mesmos parâmetros ou assinatura, e mesmo tipo de retorno como o método na classe pai.

This

É usado para fazer auto-referência ao próprio contexto em que se encontra e sempre será a própria classe ou o objeto já instanciado.

Dentro de um método de instância ou um construtor, this é uma referência para o objeto atual – o objeto cujo método ou construtor é chamado. Você pode se referir a qualquer membro do objeto atual de dentro de um método de instância ou um construtor usando this.

Exemplo:

Neste exemplo damos a classe MountainBike todos os mesmos campos e métodos da classe bicicleta, e ainda permite que seu código se concentre exclusivamente sobre as características que a tornam única. Isso faz do código de suas subclasses fáceis de ler. Usamos metodos Override neste exemplo de duas maneiras, para substituir um metodo da subclasse e adicionar mais um construtor com parametros. O comando this referencia os campos da própria classe.

No entanto, você deve tomar cuidado para documentar corretamente o estado e o comportamento que cada superclasse define, uma vez que o código não irá aparecer no arquivo de origem de cada subclasse.

Java

Classe #1 – Principal

package org.desenvolvimentoaberto;

public class Principal {

public static void main(String[] args) {
   // Metodo com Construtor Default
   Bicicleta bike1 = new Bicicleta();
   bike1.modelo = "ZR069";
   bike1.quadro = "Ferro";
   bike1.rodas  = "Ferro";
   bike1.freios = "Pastilhas";
   bike1.bicicleta();

   System.out.println();

   // Construtor Override
   Bicicleta bike2 = new Bicicleta("XA 200", "Aluminio", "Pastilhas", "Aluminio");
   bike2.bicicleta();

   System.out.println();

   // Herança - Montain Bike
   BicicletaMontanha bike3 = new BicicletaMontanha();
   bike3.modelo        = "Attack 500";
   bike3.quadro        = "Fibra de Carbono";
   bike3.rodas         = "Aluminio";
   bike3.freios        = "Disco";
   bike3.amortecedores = "R3000";
   bike3.garrafa       = "Aluminio 500ml";
   bike3.marchas       = "18 Velocidades";
   bike3.gps           = "Discovery 2.5";

   // Metodo Override
   bike3.bicicleta();
  }

}

Classe #2 – Bicicleta

package org.desenvolvimentoaberto;
public class Bicicleta {

  public String modelo;
  public String quadro;
  public String freios;
  public String rodas;

  // Construtor Default
  public Bicicleta()
  {}

  // Construtor Override
  public Bicicleta (String modelo, String quadro, String freios, String rodas)
  {
   this.modelo = modelo;
   this.quadro = quadro;
   this.rodas = rodas;
   this.freios = freios;
  }

public void bicicleta ()
  {
   System.out.println(" Bicicleta:" + modelo );
   System.out.println(" Quadro:" + quadro );
   System.out.println(" Rodas:" + rodas );
   System.out.println(" Freios:" + freios );
  }

}

Classe #3 – BicicletaMontanha (Sub Classe)

package org.desenvolvimentoaberto;
public class BicicletaMontanha extends Bicicleta {

  public String marchas;
  public String amortecedores;
  public String garrafa;
  public String gps;

  //Metodo Override
  public void bicicleta ()
  {
      System.out.println(" Bicicleta:" + modelo );
      System.out.println(" Quadro:" + quadro );
      System.out.println(" Rodas:" + rodas );
      System.out.println(" Freios:" + freios );
      System.out.println(" Marchas:" + marchas );
      System.out.println(" Amortecedores:" + freios );
      System.out.println(" Garrafa:" + garrafa );
      System.out.println(" Gps:" + gps );
    }

BicicletaMontanha()
  {
  }
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s