Betongklasse i Java

1. Introduksjon

I denne hurtigveiledningen, Vi diskuterer begrepet "konkret klasse" på Java.

Først definerer vi begrepet. Så får vi se hvordan det er forskjellig fra grensesnitt og abstrakte klasser.

2. Hva er en betongklasse?

En konkret klasse er en klasse som vi kan lage en forekomst av, ved hjelp av ny nøkkelord.

Det er med andre ord en full implementering av tegningen. En konkret klasse er fullført.

Tenk deg for eksempel en Bil klasse:

public class Car {public String honk () {return "beep!"; } public String drive () {return "vroom"; }}

Fordi alle metodene er implementert, kaller vi det en konkret klasse, og vi kan øyeblikkeliggjøre den:

Bilbil = ny bil ();

Noen eksempler på konkrete klasser fra JDK er HashMap, HashSet, ArrayList, og LinkedList.

3. Java Abstraction vs. Concrete Classes

Ikke alle Java-typer implementerer imidlertid alle metodene sine. Denne fleksibiliteten, også kalt abstraksjon, lar oss tenke mer generelt på domenet vi prøver å modellere.

I Java kan vi oppnå abstraksjon ved hjelp av grensesnitt og abstrakte klasser.

La oss se bedre på konkrete klasser ved å sammenligne dem med disse andre.

3.1. Grensesnitt

Et grensesnitt er en blåkopi for en klasse. Eller med andre ord, det er en samling av ikke-implementerte metodesignaturer:

grensesnittdrevet {void honk (); ugyldig stasjon (); }

Merk at den bruker grensesnitt nøkkelord i stedet for klasse.

Fordi Kjørbar har uimplementerte metoder, kan vi ikke instantiere det med ny nøkkelord.

Men, konkrete klasser som Bil kan implementere disse metodene.

JDK gir en rekke grensesnitt som Kart, Liste, og Sett.

3.2. Abstrakte klasser

En abstrakt klasse er en klasse som har uimplementerte metoder, selv om det faktisk kan ha begge deler:

offentlig abstrakt klasse Vehicle {public abstract String honk (); public String drive () {return "zoom"; }}

Merk at vi markerer abstrakte klasser med nøkkelordet abstrakt.

Igjen, siden Kjøretøy har en uimplementert metode, tute, kan vi ikke bruke ny nøkkelord.

Noen eksempler på abstrakte klasser fra JDK er AbstractMap og Abstraktliste.

3.3. Betongklasser

I motsetning, konkrete klasser har ingen uimplementerte metoder. Enten implementeringene er arvet eller ikke, så lenge hver metode har en implementering, er klassen konkret.

Betongklasser kan være så enkle som våre Bil eksempel tidligere. De kan også implementere grensesnitt og utvide abstrakte klasser:

offentlig klasse FancyCar utvider kjøretøyredskaper Drivbar {public String honk () {return "beep"; }}

De FancyCar klasse gir en implementering for tute og det arver implementeringen av kjøre fra Kjøretøy.

Som sådan har den ingen uimplementerte metoder. Derfor kan vi lage en FancyCar klasseinstans med ny nøkkelord.

FancyCar bil = ny FancyCar ();

Eller, enkelt sagt, alle klasser som ikke er abstrakte, kan vi kalle konkrete klasser.

4. Oppsummering

I denne korte opplæringen lærte vi om konkrete klasser og deres spesifikasjoner.

I tillegg viste vi forskjellene mellom grensesnitt og konkrete og abstrakte klasser.


$config[zx-auto] not found$config[zx-overlay] not found