abstracte klasse

een abstracte klasse is een klasse die abstract wordt verklaard — het kan al dan niet abstracte methoden bevatten. Abstracte klassen kunnen niet worden geà nstalleerd, maar ze kunnen worden gesubclasseerd. Een abstracte klasse kan statische velden en statische methoden hebben. Wanneer een abstracte klasse wordt gesubclasseerd, biedt de subklasse gewoonlijk implementaties voor alle abstracte methoden in zijn bovenliggende klasse. Maar als dat niet het geval is, dan moet de subklasse ook abstract verklaard worden.,

een abstracte methode is een methode die wordt gedeclareerd zonder implementatie (zonder accolades en gevolgd door een puntkomma), als volgt:

abstract void sum(int a, int b);

overweeg het gebruik van abstracte klassen als een van deze stellingen van toepassing is op uw situatie:

  1. u wilt code delen tussen verschillende nauw verwante klassen.
  2. u verwacht dat klassen die uw abstracte klasse uitbreiden veel gemeenschappelijke methoden of velden hebben of andere toegangsmodifiers dan Openbaar vereisen (zoals protected en private).
  3. u wilt niet-statische of niet-definitieve velden declareren., Dit stelt u in staat om methoden te definiëren die toegang kunnen krijgen tot en de status van het object waartoe ze behoren kunnen wijzigen.

Interface

een interface is slechts de declaratie van methoden van een object; het is niet de implementatie. In een interface definiëren we wat voor soort operatie een object kan uitvoeren. Deze bewerkingen worden gedefinieerd door de klassen die de interface implementeren. Interfaces vormen een contract tussen de klasse en de buitenwereld, en dit contract wordt afgedwongen tijdens de bouwtijd door de compiler.,

overweeg om interfaces te gebruiken als een van deze statements van toepassing is op uw situatie:

  1. u verwacht dat niet-gerelateerde klassen uw interface zullen implementeren. Bijvoorbeeld, de interfaces vergelijkbaar en Cloneable worden geïmplementeerd door vele niet-gerelateerde klassen.
  2. u wilt het gedrag van een bepaald gegevenstype opgeven, maar u hoeft zich geen zorgen te maken over wie het gedrag implementeert.
  3. u wilt profiteren van meerdere erfenissen.,

oorspronkelijk gepubliceerd in juni 2016

verder lezen

  • wanneer (niet) Java gebruiken abstracte klassen
  • Java: Interface Vs. abstracte klasse
  • Hoe te kiezen tussen Interface en abstracte klassen in Java