Abstrakt Klasse

En abstrakt klasse er en klasse der er erklæret abstrakt — det kan eller ikke må indeholde abstrakte metoder. Abstrakte klasser kan ikke instantieres, men de kan underklasses. En abstrakt klasse kan have statiske felter og statiske metoder. Når en abstrakt klasse er underklasset, underklassen normalt giver implementeringer for alle de abstrakte metoder i sin overordnede klasse. Men hvis det ikke gør det, skal underklassen også erklæres abstrakt.,

En abstrakt metode er en metode, der er erklæret uden en implementering (uden seler-og efterfulgt af et semikolon), som dette:

abstract void sum(int a, int b);

Overvej ved hjælp af abstrakte klasser, hvis nogen af disse udsagn passer til din situation:

  1. Du ønsker at dele koden blandt flere nært beslægtede klasser.
  2. du forventer, at klasser, der udvider din abstrakte klasse, har mange fælles metoder eller felter eller kræver andre adgangsmodifikatorer end offentlige (såsom beskyttede og private).
  3. du vil erklære ikke-statiske eller ikke-endelige felter., Dette giver dig mulighed for at definere metoder, der kan få adgang til og ændre tilstanden af det objekt, som de tilhører.

Interface

en grænseflade er bare erklæringen om metoder til et objekt; det er ikke implementeringen. I en grænseflade definerer vi, hvilken type operation et objekt kan udføre. Disse operationer er defineret af de klasser, der implementerer grænsefladen. Grænseflader danner en kontrakt mellem klassen og omverdenen, og denne kontrakt håndhæves på byggetid af compileren.,

overvej at bruge grænseflader, hvis nogen af disse udsagn gælder for din situation:

  1. du forventer, at ikke-relaterede klasser vil implementere din grænseflade. For eksempel implementeres grænsefladerne sammenlignelige og Klonbare af mange uafhængige klasser.
  2. du vil angive adfærd for en bestemt datatype, men ikke bekymret for, hvem der implementerer dens adfærd.
  3. du vil drage fordel af flere arver.,

Oprindelig udgivet juni 2016

Yderligere Læsning

  • Når (Ikke) til at Bruge Java Abstrakte Klasser
  • Java: Interface Vs. Abstrakt Klasse
  • Hvordan til at Vælge Mellem Interface og Abstrakte Klasser i Java