Innehållsförteckning
Även om båda strukturerna kan verka lika eftersom de tvingar klasserna som använder dem att skapa de metoder de har och använda dem så att de kan vara giltiga, har de viktiga skillnader mellan dem, vilket kan ge oss mer ljus över hur vi kan använda dem .Skillnaderna, även om de är subtila, gör att vi kan använda båda strukturerna även i kombination, på så sätt kan vi uppnå större ordning i vårt projekt och skapa applikationer som gör att vi bättre kan reproducera objekt från den verkliga världen i ett digitalt format.
BegränsningarDen största skillnaden ser vi mellan abstrakta klasser och gränssnitt är att den första är en klass och den andra inte, även om gränssnitt har en liknande struktur inför restriktioner som inte finns i a abstrakt klass.
VariablerDe abstrakt klass har ingen begränsning i användningen av variabler, men gränssnitt om den har det måste faktiskt alla variabler som vi ska använda vara offentlig, statisk eller slutgiltig.
I detta fall byggare av abstrakt klass måste åberopas genom underklasser, vilket utesluter möjligheten att instansera det via operatören ny.
I fallet med gränssnitt, detta kan inte ha konstruktörer eftersom det inte är en klass, vilket gör att vi också slänger skapandet av instanser med operatören ny.
MetoderI en gränssnitt metoderna måste vara offentlig abstrakt Å andra sidan kan vi i den abstrakta klassen placera alla typer av metoder utan problem, vilket gör ytterligare en skillnad för oss.
En annan punkt som vi måste ta hänsyn till är sättet att göra arv och implementering som vi kan uppnå med dessa två strukturer i Java, det vet vi när vi gör det arv I en klass kan vi bara ärva direkt från en överklass, det vill säga om vi vill ärva från två olika klasser måste vi skapa som en kaskadeffekt, där en första klass ärver från överklassen och sedan en annan klass ärver från detta för att få dess funktionalitet och dess föräldraklass.
I gränssnitt Detta problem uppstår inte, vi kan faktiskt ärva direkt från flera gränssnitt, så om vi vill skaffa deras metoder kan vi göra det utan problem.