Il miglior tutorial eredità Java Nel 2024, in questo tutorial puoi imparare IS-Un rapporto,parola chiave instanceof,HA-Un rapporto,
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.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:
Analisi di IS-A rapporto nell'esempio di cui sopra, come segue:
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
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.
public interface Animal {} public class Mammal implements Animal{ } public class Dog extends Mammal{ }
È 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-A appartenenza in nome della classe e dei suoi membri. Questo aiuta a riutilizzare il codice e ridurre gli errori di codice.
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.