ComputereSoftware

Abstrakt klasse og metode: den beskrivelse, egenskaber og funktioner. Hvad er forskellig fra den abstrakte klasse-interface

Enhver, der har nogen lidt viden i programmering, gad vide om, hvorfor der er abstrakte Base klasse. Hvad er deres formål? Sådan oprettes en abstrakt klasse? Hvad er fordelene, de tilbyder i praksis? Hvorfor der er behov i programmering og nogle funktioner i deres gennemførelse bør tage hensyn til?

abstrakte klasser

Så i programmering kaldet enhed kode på grundlag af hvilke der ikke kan oprettes objekterne. Det bemærkes, at denne klasse af efterfølgere ikke kan være abstrakt. Derfor oprettelsen af objekter baseret på dem er meget muligt. Hvis vi betragter eksemplet med Java, vi konstruere en model, som vi kan beskrive konstruktørernes i klassen A. Men for at bruge dem, kan vi ikke. Vejen ud af denne situation, er at erklære enhver variabel reference. Og du skal være klart defineret, så den peger på et objekt af klassen A. Dette er, hvordan det kan gøres? Dette vil hjælpe os med at bringe. Det skal erindres, at den forælder klassen altid anses for at være mere alsidig end efterkommer. I mange programmeringssprog bruges til at bringe automatisk. Men hvis der ikke er tillid til tilstedeværelsen af en sådan mekanisme, så du skal udtrykkeligt henvise objektet.

abstrakte metoder

Hvad er de? Abstrakt opkald disse metoder, som ikke er implementeret i denne klasse. Således følgende parenteser (som opregner de argumenter deri) ikke giver formet åbning (hvorefter lokaliserede blok beskrivelse af metoden), og kun et semikolon. I dette tilfælde er der ingen oplysninger om, hvad det gør. Her er spørgsmålet kan blive bedt om: "Og hvad metode uden gennemførelse?" Efter alt, er han ikke til at blive brugt! Selvfølgelig, i klasseværelset, hvor han blev beskrevet, er dette ikke muligt. Men hvis vi betragter situationen fra synspunkt en efterkommer, kan det kaldes. Og det vil fungere på en specifik beskrivelse tilgængelig i denne klasse.

Funktioner abstrakte metoder

Der er begrænsninger i at bruge dem. Lad os betragte eksemplet med programmeringssproget Java. Der er et krav, hvis klassen har mindst én sådan metode, skal det være abstrakt. Og under alle omstændigheder er det hensigtsmæssigt at anvende en sådan konstruktion? Lad os forstå dette med et eksempel klasse kæledyr. Til at begynde at forstå, at der ikke er nogen lyd, som de er offentliggjort. Derfor, i den mest generelle klasse er ikke indstillet korrekt gennemførelse af metoden. Men skabt organ, som udover via blokke til ham. Og i det følgende, når du opretter hund klasse, kat eller hamster vil blive ordineret en enkelt metode til det, inden for rammerne af, som vil blive fremlagt for alle de funktioner.

grænseflade

I programmering skabt mange værktøjer, hvis formål - at hjælpe folk gøre en god kvalitet produkt. Og det emne under overvejelse bør gives til dette aspekt, og at alle kender I modsætning til en abstrakt klasse fra grænsefladen. Så den sidste funktion er, at det ikke kan være de egenskaber og metoder er ikke defineret krop. Ved at undersøge forskellen mellem en abstrakt klasse fra grænsefladen, skal dvæle mere på en bestemt. Således er det første er nedarvet, mens den anden - realiseres. Uerfarne person, dette kan synes ligegyldig. Men faktum er, at kan nedarves kun én klasse, og indså - så meget som nødvendigt. Det er, hvad der er anderledes fra grænsefladen af den abstrakte klasse. Java er stadig de funktioner, som det kan beskrives kun abstrakt offentlige metoder og statiske konstanter. Men på samme grænseflader kan også være nedarvet. Det er nødvendigt at påpege, at operatørerne anvendte offentligheden via offentlige.

Multipel nedarvning af grænseflader

Denne funktion er ikke tilgængelig for klasser i mange programmeringssprog (fx Java behandlet af os). Det skyldes en række problemer. Da sådanne flertydigheder indikerer, at forekomme i rækkefølge. Dette var årsagen til at indføre flere grænseflade arv. Dette løser delvist de eksisterende problemer, men ikke alle. Så tak til principperne om indkapsling og polymorfi, grænseflader kan gennemføres med succes i forskellige klasser efter forskellige metoder (selv om de vil have det samme navn). Men glem ikke om de eksisterende problemer. Så vil, når der arbejdes med flere interfaces nødt til altid at angive, hvem vi har i tankerne. Desuden vil problemerne være, og når du forsøger at arbejde med det samme navn på to måder - i dette tilfælde vil de ikke være i stand til at drage fordel af. Derfor i sådanne tilfælde er det nødvendigt at tage sig af tilstedeværelsen af det samlede salg.

abstrakt data

Dette koncept er nøglen til programmet. I dette tilfælde, under indvinding af uafhængige gennemgang og forstå adskillelsen af interface og implementering. Lad os se på et eksempel. Vi har et tv, som er et objekt eller modul. Det har en grænseflade. Som sådan er de kontroller, samt lyd og billede. Jo mere perfekt grænseflade bruges, jo mere komfortabel fjernsynet i brug. Vi kan skifte mellem programmer ved at trykke på en vilkårlig knap. I dette tilfælde er der ingen grund til at tænke på de fysiske processer i fjernsynet. Pas godt på dem specialister, der indsamler enheden. Vi kan godt lide folk kun er interesseret i ejendomme. Vender tilbage til programmeringen, kan vi sige, at de er på et lignende interface og implementering. Også, hvis en person føler sig sikker på sin viden, han kan "fjerne" dække vores hypotetiske TV og for at forbedre det. Selv om dette kan føre til lokal succes i de fleste tilfælde, at slutresultatet er negativt. Derfor, i den understøttede programmering forbud mod adgang og for at skjule de interne komponenter i abstrakte data. Princippet i denne mekanisme tilvejebringer en måde at forhindre tilsigtet eller utilsigtet justering af de indre bestanddele. Og når vi taler om abstrakte datatyper, middelværdien af et sæt af et sæt operationer, der kan udføres på dem.

objekter

Vi har allerede set en abstrakt klasse og brugerflade i almindelighed og generelt. Lad os nu detaljer vor viden. For at starte opmærksomme objekter. Nedenfor dem generelt klar over den miljømæssige virkelighed, der eksisterer i tid og rum. Men formelt identificere objekter i programmet er vanskelig (med den filosofiske og teoretiske synspunkt). Derfor er det på grund af dets egenskaber. Som et eksempel, følgende: Et objekt kan identificeres entydigt (med et unikt navn), er det i en bestemt tilstand og bruger en vis adfærdsmønster.

arv

Da programmeringen er baseret på en hierarkisk træ opbygning af relationer mellem objekter, er det spørgsmål, om det faktum, at de underliggende egenskaber på de typer af forældrenes kode biblioteker blev overført. Under arv forstå forholdet, når nogen man gentager adfærd og struktur på noget andet. I det almindelige liv, kan det findes overalt. Sådan blev udsat og programmering relativt abstrakte elementer. Til sammenligning er den omstændighed, at der ikke er sådan krop som en fugl. Dette er en abstrakt navn. Som et konkret eksempel føre te, Nightingale eller spurv. Takket være den arv, vi kan bruge klasse biblioteker, samt at udvikle dem til et bestemt program. Dette værktøj giver os mulighed for at oprette nye objekter, samtidig tilføje eller ændre egenskaberne for en allerede oprettet. Heir får alle de metoder og felter i hans forfader og erhverver sine egne attributter, hvis det er nødvendigt. På grund af det faktum, at der er abstrakte elementer og princippet om arv, er der rige muligheder for modifikation inden for objektorienteret programmering. Desuden tillader en fleksibel tilgang til løsning af problemer. Når du arver en ny klasse af overførte data og funktioner.

polymorfi

Det er nødvendigt at anvende den samme funktion til at løse forskellige typer af problemer. I dette tilfælde tilvejebringer tilstedeværelsen af muligheden for en anden handling, vil hvis indhold afhænger af den type objekt, med hvilket arbejdet udføres. Under polymorfi forstå egenskaberne for elementer, der har en fælles forælder, til at udføre ligner den semantiske mening af problemet på forskellige måder. Vi trækker en analogi med dyr. Der er action - at køre. Vi ved alle, hvordan det sker. Men forskellige dyr (løve, elefant, chimpanse, krokodille, skildpadde) denne handling vil blive udført på forskellige måder. I dette tilfælde, deres bevægelse er ansvarlig udvikler, som om nødvendigt kan forårsage for en bestemt sag en vis rutine, algoritme og gennemføre det med succes. Dette gøres ved hjælp af et sæt metoder. På samme tid i hver klasse programmør specificerer som objekt egenskaber, der er iboende. Ændring noget i afkommet, kan du opnå specifikke, ønskede handling i denne sag. en sådan effekt kaldes polymorfisme af objekter. Generelt er en abstrakt klasse er et yderst nyttigt værktøj til programmering.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 da.unansea.com. Theme powered by WordPress.