![Part 33 - C# Tutorial - Difference between abstract classes and interfaces.avi](https://i.ytimg.com/vi/hlLqvwocSr4/hqdefault.jpg)
Inhoud
Grootste verschil
Het belangrijkste verschil tussen abstracte klasse en interface is dat de procedures van de Java-interface in wezen abstract zijn en geen toepassingen kunnen hebben. Zo breed gesteld, interface is eigenlijk een contract en als we het hebben over interface, is het van toepassing dat de methoden geen body hebben, het is slechts een patroon. Terwijl abstracte klassen in feite de klassen zijn die duur zijn om te gebruiken. Abstracte klassen en interface is een heel ander concept, dit zijn twee verschillende dingen, maar soms zijn hun implementaties vrij gelijkaardig.
Wat is abstracte klasse?
Een abstracte klasse wordt niet volledig geïmpliceerd door de programmeur. Een abstracte klasse kan een of meer abstracte methoden hebben. Ze zijn handig voor het modelleren van een klassengroep of rangorde en terwijl dit wordt uitgevoerd, krijgt de programmeur een idee van wat er moet worden gebouwd nadat de vereisten zijn bekeken. Op abstracte klassen kan niet volledig worden vertrouwd omdat het sommige delen mist. Het belangrijkste punt achter dit argument is dat de abstracte klasse strikt objectgeoriënteerd is, hoewel het een methode heeft, maar geen body. Als we het hebben over abstracte klassen, is er een sterk verband tussen twee klassen, omdat deze klassen de neiging hebben om van elkaar te winnen of te erven.
Wat is interface?
Als we het hebben over interface, integendeel, dan is de relatie of communicatie tussen interface zelf en de klasse die de interface impliceert niet zo sterk als in abstracte klassen. Een Java-klasse kan veel interfaces implementeren, maar kan erven van een enkele abstracte klasse. Dat betekent dus dat wanneer je veel interacties in één keer wilt impliceren, interface je ding is. Afgezien van dit hele scenario, zelfs als u niet wilt dat de API een tijdje verandert, is interface de beste optie voor u. Interface is eigenlijk het contract tussen twee verschillende objecten. Om het kort te houden, de interface draait om de functionaliteit.
Belangrijkste verschillen
- Een abstracte klasse is objectgeoriënteerd, terwijl de interface functiegericht is.
- Als je wilt dat API een tijdje constant blijft, kies je voor interface boven abstracte klasse.
- Meerdere nalatenschappen kunnen worden verkregen door meerdere interfaces te impliceren. In de abstracte klasse kun je niet meerdere erfenis krijgen.
- Als je een vibe hebt die je in de toekomst zou moeten toevoegen aan je werk, dan wordt gekozen voor abstracte klasse, geen interface.
- Abstracte klasse geeft een algemene toepassing van de basisklasse, maar er gebeurt niets in de interface.
- In de interface zijn alle methoden die u implementeert openbaar, maar in de abstracte klasse kunt u ook enkele niet-openbare methoden toepassen.
- Constructors zijn er niet in interface maar ze komen wel voor in abstracte klasse.
- Volledig lid van abstracte klasse kan statisch zijn, maar niet van interface.