Tutoriais Java

Java HOME Introdução ao Java Java Começar Sintaxe Java Comentários Java Variáveis ​​Java Tipos de dados Java Cast de tipo Java Operadores Java Strings Java Java Math Java Booleanos Java Se... Senão Comutador Java Java While Loop Java para loop Java Break/Continuar Matrizes Java

Métodos Java

Métodos Java Parâmetros do método Java Sobrecarga do método Java Escopo Java Recursão Java

Classes Java

Java OOP Classes/objetos Java Atributos de classe Java Métodos de classe Java Construtores Java Modificadores Java Encapsulamento Java Pacotes Java / API Herança Java Polimorfismo Java Classes internas de Java Abstração Java Interface Java Enumerações Java Entrada de usuário Java Data Java Java ArrayList Java LinkedList Java HashMap Java HashSet Iterador Java Classes Java Wrapper Exceções Java Java RegEx Threads Java Java Lambda

Manipulação de arquivos Java

Arquivos Java Java Criar/Gravar Arquivos Arquivos de leitura Java Java Excluir Arquivos

Java como fazer

Adicionar dois números

Referência Java

Palavras-chave Java Métodos de String Java Métodos matemáticos Java

Exemplos Java

Exemplos Java Compilador Java Exercícios de Java Teste Java Certificado Java


Herança Java


Herança Java (Subclasse e Superclasse)

Em Java, é possível herdar atributos e métodos de uma classe para outra. Agrupamos o "conceito de herança" em duas categorias:

  • subclasse (filho) - a classe que herda de outra classe
  • superclasse (pai) - a classe que está sendo herdada

Para herdar de uma classe, use a palavra- extends chave.

No exemplo abaixo, a Carclasse (subclasse) herda os atributos e métodos da Vehicleclasse (superclasse):

Exemplo

class Vehicle {
  protected String brand = "Ford";        // Vehicle attribute
  public void honk() {                    // Vehicle method
    System.out.println("Tuut, tuut!");
  }
}

class Car extends Vehicle {
  private String modelName = "Mustang";    // Car attribute
  public static void main(String[] args) {

    // Create a myCar object
    Car myCar = new Car();

    // Call the honk() method (from the Vehicle class) on the myCar object
    myCar.honk();

    // Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
    System.out.println(myCar.brand + " " + myCar.modelName);
  }
}

Você notou o protectedmodificador em Vehicle?

Definimos o atributo de marca em Vehicle para um protected modificador de acesso . Se estiver definido como private, a classe Carro não poderá acessá-lo.

Por que e quando usar "herança"?

- É útil para reutilização de código: reutilize atributos e métodos de uma classe existente ao criar uma nova classe.

Dica: Dê uma olhada também no próximo capítulo, Polimorfismo , que usa métodos herdados para realizar diferentes tarefas.


A palavra-chave final

Se você não quiser que outras classes herdem de uma classe, use a finalpalavra-chave:

Se você tentar acessar uma finalclasse, o Java irá gerar um erro:

final class Vehicle {
  ...
}

class Car extends Vehicle {
  ...
}

A saída será algo assim:

Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
                  ^
1 error)