Java Abstraksie
Abstrakte Klasse en Metodes
Data- abstraksie is die proses om sekere besonderhede weg te steek en slegs noodsaaklike inligting aan die gebruiker te wys.
Abstraksie kan bereik word met óf abstrakte klasse óf
koppelvlakke (waaroor jy meer sal leer in die volgende hoofstuk).
Die abstract
sleutelwoord is 'n nie-toegang wysiger, wat gebruik word vir klasse en metodes:
- Abstrakte klas: is 'n beperkte klas wat nie gebruik kan word om voorwerpe te skep nie (om toegang daartoe te verkry, moet dit van 'n ander klas geërf word).
- Abstrakte metode: kan slegs in 'n abstrakte klas gebruik word, en dit het nie 'n liggaam nie. Die liggaam word verskaf deur die subklas (van geërf).
'n Abstrakte klas kan beide abstrakte en gereelde metodes hê:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
Uit die voorbeeld hierbo is dit nie moontlik om 'n voorwerp van die Dierklas te skep nie:
Animal myObj = new Animal(); // will generate an error
Om toegang tot die abstrakte klas te verkry, moet dit van 'n ander klas geërf word. Kom ons skakel die diereklas wat ons in die Polimorfisme -hoofstuk gebruik het om na 'n abstrakte klas:
Onthou uit die Erfenis hoofstuk dat ons die extends
sleutelwoord gebruik om van 'n klas te erf.
Voorbeeld
// Abstract class
abstract class Animal {
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep() {
System.out.println("Zzz");
}
}
// Subclass (inherit from Animal)
class Pig extends Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Waarom en wanneer om abstrakte klasse en metodes te gebruik?
Om sekuriteit te bereik - versteek sekere besonderhede en wys slegs die belangrike besonderhede van 'n voorwerp.
Let wel: Abstraksie kan ook bereik word met Interfaces , waaroor jy meer sal leer in die volgende hoofstuk.