Latest web development tutorials

herança Java

A herança é uma pedra angular da tecnologia java programação orientada a objetos, pois permite a criação de classes de nível hierárquico. A herança pode ser entendido como um objecto para obter as propriedades de um outro objectivo do processo.

Se a classe pai é uma classe A classe B, classe B e classe C é a classe pai, e também chamar C é uma subclasse de A, Classe C de Classe A é herdada. Em Java, herança de classe herança simples, isto é, uma subclasse pode ter apenas uma classe pai

Dois herança palavras-chave mais comumente utilizado é amplia e implementos.

Tanto o uso de palavras-chave e determinar se um objeto é outro objeto IS-A (a) relação.

Ao utilizar estas duas palavras-chave, podemos alcançar um objeto para obter as propriedades de outro objeto.

Todas as classes Java são herdados pela classe java.lang.Object, assim que a classe Object é o ancestral de todas as classes, e, além disso Object, todas as classes devem ter uma classe pai.

Por excesso de palavras-chave se estende pode declarar uma classe herda de outra classe, a forma geral é a seguinte:

// A.java
public class A {
    private int i;
    protected int j;
 
    public void func() {
 
    }
}
 
// B.java
public class B extends A {
}

O código mostra trecho acima, B herda de A, B é uma subclasse de A. E A é uma subclasse de Object, não pode ser declarado explicitamente.

Como uma instância da subclasse B de A tem todas as variáveis ​​de membro, mas para os membros da variável B privada, mas não têm acesso, que garante o encapsulamento de um.


Relação é-um

Que IS-A: Um objeto é uma classificação outro objeto.

Aqui é a palavra-chave extends herança de implementação.

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

Baseado no exemplo acima, a seguinte afirmação é verdadeira:

  • classe animal é a classe classe Mammal pai.
  • classe animal é a classe classe Reptile pai.
  • Mamífero e classe Reptile é uma subclasse da classe Animal.
  • classe do cão é uma subclasse da classe de mamífero é uma subclasse da classe de animal.

Análise de relação é-um no exemplo acima, como se segue:

  • Mamífero IS-um animal
  • Réptil é-um animal
  • O cão é um mamífero-

Portanto: O cão está-A Animais

Usando a palavra-chave extends, subclasses herdam todos os métodos e propriedades da classe pai, mas não pode usar métodos privados (particulares) e propriedades.

Nós usamos o operador instanceof pode determinar mamífero é um animal-

Exemplos

public class Dog extends Mammal{

   public static void main(String args[]){

      Animal a = new Animal();
      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
}

Os exemplos acima são compilados os resultados como se segue:

true
true
true

Após a introdução de palavra-chave extends, veremos como usar a palavra-chave implementos para indicar a relação é-um.

Implementa palavra-chave no caso de interface de herança de classe, esta situação não pode usar a palavra-chave extends.

Exemplos

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

palavra-chave instanceof

Você pode usar o operador instanceof para testar se Mamífero e objeto cão é uma instância de classe Animal.

interface Animal{}

class Mammal implements Animal{}

public class Dog extends Mammal{
   public static void main(String args[]){

      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
} 

Os exemplos acima são compilados os resultados como se segue:

true
true
true

Tem-um relacionamento

TEM-A filiação em nome da classe e seus membros. Isso ajuda a reutilização de código e reduzir os erros de código.

exemplo

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
	private Speed sp;
} 

Van classe e classe de velocidade é tem-um relacionamento (Van tem uma velocidade), então você não vai ter todo o código é colado na classe Van velocidade na classe e classe A velocidade pode ser reutilizado em múltiplas aplicações.

Em recursos orientados a objetos, o usuário não precisa se preocupar sobre como as classes internas.

detalhes de implementação Van classe escondidos do usuário, para que os usuários só precisa saber como chamar Van classe para completar uma determinada função, sem ter que saber Van classe é fazê-lo eles mesmos ou chamar outra classe para fazer o trabalho.

Java suporta apenas herança simples, o que significa que uma classe não pode herdar várias classes.

A prática a seguir não é legal:

public class extends Animal, Mammal{} 

Java suporta apenas herança simples (herança e abstrato classe base), mas podemos usar a interface de implementar (interfaces de herança múltipla de conseguir), a estrutura de script, tais como:

public class Apple extends Fruit implements Fruit1, Fruit2{}

Geralmente, nós herdar a classe base e classe abstrata com a palavra-chave extends implementa a interface com a herança implementos classe palavra-chave.