Abstrakt klasse vs. grensesnitt
Abstrakt klasse (eller type) er en type i et nominativt system som er erklært av programmet. Selv om navnet tilsier slikt, kan det hende at en abstrakt klasse inkluderer eller ikke inkluderer abstrakte metoder eller egenskaper. Distinksjonsklassen refererer til forskjellige språkkonstruksjoner som kan brukes til å implementere abstrakte typer. Abstrakte klasser kan karakteriseres av et designproblem som følger med den beste objektorienterte programmeringen og av deres uferdige natur.
Et grensesnitt er en abstrakt type som klasser må implementere for å spesifisere et grensesnitt (generelt sett). Grensesnitt kan bare inneholde metodesignaturer og konstante erklæringer (både statiske og endelige), aldri metodedefinisjoner. Grensesnitt simulerer flere arv og brukes til å kode likheter som deles mellom forskjellige typer klasser.
Abstrakte typer kan opprettes, betegnes eller simuleres på flere forskjellige måter. En programmerer kan betegne abstrakte typer ved å bruke nøkkelordet abstrakt eksplisitt, ved å inkludere en eller flere metoder i klassedefinisjonen, arve fra en annen abstrakt type uten å overstyre manglende funksjoner som er nødvendige for å fullføre klassedefinisjonen, eller ved å sende en bestemt metode til den objektorienterte programmeringsspråk kjent som dette som ikke implementerer metoden direkte.
Grensesnitt kan defineres ved hjelp av abstrakte metoder. Klasser kan også implementeres i grensesnitt. Hvis en klasse implementerer et grensesnitt og ikke implementerer alle metodene, må signifier abstrakt brukes, ellers er ikke signifier nødvendig (fordi alle grensesnitt er iboende abstrakte). Klasser kan også implementere flere grensesnitt.
Mens grensesnitt brukes til å spesifisere generiske grensesnitt, kan abstrakte typer brukes til å definere og håndheve protokoller (som er et sett med operasjoner som alle objekter som implementerer ønsket protokoll må støtte). Abstrakte typer forekommer ikke på språk uten undertyping. Siden slike undertyper blir tvunget til å implementere all nødvendig funksjonalitet, og sikre korrektheten av programutførelsen. Det er flere måter abstrakte typer kan opprettes på: full abstrakte basisklasser er klasser som enten eksplisitt er erklært å være abstrakte eller inneholder abstrakte (uimplementerte) metoder; Vanlige Lisp Object-systemer inkluderer mixins som er basert på Flavours-systemet; Java , selvfølgelig; og Traits, som fungerer som en utvidelse av Smalltalk.
Sammendrag:
1. Abstrakte klasser (eller typer) erklærer programmer; grensesnitt er abstrakte typer som alle klasser må implementere for å spesifisere grensesnittet.
2. Abstrakte typer kan betegnes ved å bruke nøkkelordet eksplisitt; grensesnitt er iboende abstrakte, og trenger derfor ikke å betegnes ved hjelp av nøkkelordet i det hele tatt (med mindre en bestemt klasse implementerer et grensesnitt, men ikke implementerer alle metodene).
Copyright © Alle Rettigheter Reservert | asayamind.com