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 abstractsleutelwoord 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 extendssleutelwoord 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.