Latest web development tutorials

eredità Java

L'ereditarietà è una pietra miliare della tecnologia di programmazione Java orientata agli oggetti, perché permette la creazione di classi di livello gerarchico. Trasmissione può essere inteso come un oggetto per ottenere le proprietà da un altro oggetto del processo.

Se la classe genitore è una Classe A Classe B, Classe B e Classe C è la classe padre, e abbiamo anche chiamata C è una sottoclasse di A, Classe C dalla Classe A è ereditato. In Java, l'ereditarietà ereditarietà singola classe, che è, una sottoclasse può avere una sola classe padre

Due più comunemente usato parole chiave ereditarietà è si estende e si implementa.

Sia l'uso di parole chiave e determinare se un oggetto è un altro oggetto IS-A (a) relazione.

Utilizzando queste due parole chiave, possiamo ottenere un oggetto per ottenere le proprietà di un altro oggetto.

Tutte le classi Java sono ereditati dalla classe java.lang.Object, in modo che la classe Object è l'antenato di tutte le classi, e in aggiunta oggetto, tutte le classi devono avere una classe genitore.

Da un eccesso di parole chiave si estende possibile dichiarare una classe eredita da un'altra classe, la forma generale è la seguente:

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

Il codice di cui sopra mostra frammento, B eredita da A, B è una sottoclasse di A. E A è una sottoclasse di Object, non ci può essere esplicitamente dichiarato.

Come un'istanza sottoclasse B di A ha tutte le variabili membro, ma per i membri della variabile privata B, ma non hanno accesso, che garantisce l'incapsulamento A di.


IS-Un rapporto

Vale a dire-A: Un oggetto è una classificazione un altro oggetto.

Ecco la parola chiave extends ereditarietà dell'implementazione.

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

Sulla base del precedente esempio, la seguente affermazione è vera:

  • classe Animal è il genitore di classe classe Mammal.
  • classe Animal è il genitore di classe di classe rettile.
  • Mammifero e la classe Reptile è una sottoclasse della classe Animal.
  • classe Cane è sia una sottoclasse della classe Mammal è una sottoclasse della classe Animal.

Analisi di IS-A rapporto nell'esempio di cui sopra, come segue:

  • Mammifero IS-animale
  • Rettile IS-animale
  • Cane è un mammifero-

Quindi: cane è un animale-

Utilizzando la parola chiave extends, sottoclassi ereditano tutti i metodi e le proprietà della classe genitore, ma non è possibile utilizzare i metodi privati (private) e le proprietà.

Usiamo l'operatore instanceof in grado di determinare Mammifero IS-animale

Esempi

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);
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

true
true
true

Dopo l'introduzione di parola chiave extends, vedremo come utilizzare la parola chiave implements per indicare la IS-Un rapporto.

Implementa parola chiave nel caso di interfaccia ereditarietà di classe, questa situazione non è possibile utilizzare la parola chiave extends.

Esempi

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

parola chiave instanceof

È possibile utilizzare l'operatore instanceof per verificare se Mammifero e oggetto cane è un'istanza della 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);
   }
} 

Gli esempi sopra risultati elaborati sono i seguenti:

true
true
true

HA-Un rapporto

HA-A appartenenza in nome della classe e dei suoi membri. Questo aiuta a riutilizzare il codice e ridurre gli errori di codice.

esempio

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

Classe Van e la classe di velocità è HAS-Un rapporto (Van ha una velocità), in modo da non avere tutto il codice viene incollato nella classe Van Velocità nella classe, e la classe di velocità possono essere riutilizzati in più applicazioni.

In caratteristiche object-oriented, l'utente non deve preoccuparsi di come le classi interne.

dettagli di implementazione classe di Van nascosti da parte dell'utente, così che gli utenti solo bisogno di sapere come chiamare Van classe per completare una certa funzione, senza dover conoscere Classe Van è quello di fare da soli o chiamare altra classe per fare il lavoro.

Java supporta solo l'ereditarietà singola, il che significa che una classe non può ereditare più classi.

La seguente pratica non è legale:

public class extends Animal, Mammal{} 

Java supporta solo l'ereditarietà singola (eredità e classe di base astratta), ma possiamo utilizzare l'interfaccia per implementare (interfacce multiple di successione per raggiungere), la struttura di script come ad esempio:

public class Apple extends Fruit implements Fruit1, Fruit2{}

In generale, abbiamo ereditare la classe base e classe astratta con la parola chiave extends implementa l'interfaccia con l'eredità attrezzi di classe parola chiave.