Inhoudsopgave
Hoewel beide structuren op elkaar lijken, omdat ze de klassen die ze gebruiken dwingen de methoden te creëren die ze hebben en ze gebruiken zodat ze geldig kunnen zijn, hebben ze belangrijke verschillen tussen hen, wat ons meer licht kan geven over hoe we ze kunnen gebruiken .De verschillen, hoewel ze subtiel zijn, stellen ons in staat om beide structuren zelfs in combinatie te gebruiken, op deze manier kunnen we meer orde in ons project bereiken en toepassingen creëren waarmee we de objecten van de echte wereld beter in een digitaal formaat kunnen reproduceren.
BeperkingenHet belangrijkste verschil dat we zien tussen abstracte lessen en interfaces is dat de eerste een klasse is en de tweede niet, ook al is de koppel een vergelijkbare structuur heeft, wordt geconfronteerd met beperkingen die niet worden gevonden in a abstracte klasse.
VariabelenDe abstracte klasse heeft geen beperking op het gebruik van variabelen, maar de koppel als dat zo is, moeten in feite alle variabelen die we gaan gebruiken zijn openbaar, statisch of definitief.
In dit geval de bouwer van de abstracte klasse moet worden aangeroepen via subklassen, wat de mogelijkheid uitsluit om het via de operator te instantiëren nieuwe.
In het geval van koppel, dit kan geen constructors hebben omdat het geen klasse is, waardoor we ook het maken van instanties met de operator weggooien nieuwe.
Methoden:In een koppel de methoden moeten zijn: openbare samenvatting Aan de andere kant kunnen we in de abstracte klasse elk type methode zonder problemen plaatsen, wat voor ons nog een verschil maakt.
Een ander punt waar we rekening mee moeten houden, is de manier van overerving en implementatie die we kunnen bereiken met deze twee structuren in Java, we weten dat wanneer we dat doen erfenis In een klasse kunnen we alleen rechtstreeks erven van een superieure klasse, dat wil zeggen, als we willen erven van twee verschillende klassen, moeten we een cascade-effect creëren, waarbij een eerste klasse erft van de superieure klasse en vervolgens een andere klasse erft van dit om de functionaliteit en die van de bovenliggende klasse te verkrijgen.
In de interfaces Dit probleem doet zich niet voor, in feite kunnen we rechtstreeks van verschillende interfaces erven, dus als we hun methoden willen verkrijgen, kunnen we dit zonder problemen doen.