Java er et programmeringsspråk som ble introdusert i 1995 av Sun Microsystems . Både grensesnitt og abstrakte klasser blir brukt i Java -kode når flere undertyper av samme klasse trenger å oppføre seg annerledes . Abstrakte klasser og grensesnitt fungerer veldig annerledes og brukes på forskjellige måter , selv om det er noen likheter mellom dem . Språk
Abstrakte klasser og grensesnitt gir mulighet for ulike koder for å bli brukt. For eksempel kan en abstrakt klasse inneholde konkrete klasser , mens et grensesnitt kan inneholde abstrakte klasser . En abstrakt klasse er også mer væske enn et grensesnitt og kan inneholde felt som ikke er statisk eller endelig , mens et grensesnitt kan ikke. I tillegg arver en abstrakt klasse automatisk et objekt klasse, betyr det vil omfatte metoder som "klone ( )" og " lik () ", mens et grensesnitt ikke kan inkludere disse metodene .
Implementert metoder
Metoder for en abstrakt klasse kan defineres med en rekke synlighet parametere, inkludert offentlig , beskyttet, privat eller ingen. Et grensesnitt kan bare være synlig offentlig . Dette betyr at alle medlemmer av et grensesnitt er offentlige som standard , mens medlemmer av en abstrakt klasse kan omfatte ikke-offentlige medlemmer eller metoder .
Resultatutvikling
generelt sett, grensesnitt operere litt tregere enn abstrakte klasser fordi de innføre en ny klasse for hver metode som er implementert , og det kan ta ekstra tid for et grensesnitt for å finne riktig metode i hver klasse . En abstrakt klasse , på den annen side, kan anvende en metode for flere klasser samtidig, og således utfører raskere. Men de fleste JVMs ( Java Virtual Machines) for 2011 kompensere for forskjellen , og disse ytelse forskjeller er knapt merke lenger.
Bruk
Et grensesnitt bør brukes når skriptet ber deg om å gi implementering for alle dine metoder. Grensesnitt kan bygge alle klasser opp igjen fra grunnen av på en systematisk måte . Abstrakte klasser bør brukes når du har en delvis gjennomføring av skriptet , men det er ikke helt komplett . La disse ufullstendige implementasjoner som " abstrakt " og la en server til å tolke dem .