Qualsevol persona que tingui algun mica de coneixement en la programació, es pregunta sobre per què hi ha classes base abstractes. Quin és el seu propòsit? Com crear una classe abstracta? Quins són els avantatges que ofereixen en la pràctica? Per què són necessaris en la programació i algunes característiques de la seva aplicació han de tenir en compte?
classes abstractes
Així que en programació anomenat codi d'unitat en la base de la qual els objectes no es poden crear. Es fa notar que aquesta classe de successors no pot ser abstracta. Per tant, la creació d'objectes basats en ells és bastant possible. Si considerem l'exemple de Java, es construeix un model que podem descriure els constructors en la classe A. No obstant això, per a usar-los, no podem. La forma de sortir d'aquesta situació és declarar cap referència variable. I ha d'estar clarament definits perquè apunti a un objecte de classe A. Això és el que es pot fer? Això ens ajudarà a portar. Cal tenir en compte que la classe pare sempre es considera que és més versàtil que el descendent. En molts llenguatges de programació utilitzat per portar automàticament. Però si no hi ha confiança en la presència d'un mecanisme d'aquest tipus, llavors ha de fer referència explícitament a l'objecte.
mètodes abstractes
Què són? Resum de trucades aquells mètodes que no s'implementen en aquesta classe. Així, seguint parèntesi (que llista els arguments utilitzats en el mateix) no donen obertura de forma (després de la qual cosa la descripció del bloc situat del mètode), i només un punt i coma. Per tant, en aquest cas, no hi ha cap informació sobre el que fa. Aquí la pregunta se li pot demanar: "I quin mètode sense aplicació?" Després de tot, ell no es va a utilitzar! Per descomptat, a l'aula, en la qual s'ha descrit, això no és possible. Però si tenim en compte la situació des del punt de vista d'un descendent, se li pot trucar. I operarà en una descripció específica disponible en aquesta classe.
Característiques mètodes abstractes
Hi ha limitacions en el seu ús. Considerem l'exemple del llenguatge de programació Java. Hi ha un requisit si la classe té almenys un d'aquests procediments, ha de ser abstracta. I, en qualsevol cas, és apropiat usar una construcció d'aquest tipus? Anem a entendre això amb un exemple de classe mascotes. Per començar a entendre que no hi ha so que es publiquen. Per tant, en la classe més general no s'ha establert la bona execució del mètode. Però organisme creat a través de blocs que a part d'ell. I en els següents, en crear gos classe, gat o hàmster es prescriu un mètode únic per a això, en el marc dels quals es revelarà a totes les característiques.
interfície
En la programació creat moltes eines el propòsit - per ajudar les persones fan un producte de bona qualitat. I el tema que s'ha de considerar a aquest aspecte, i que tothom sap A diferència d'una classe abstracta de la interfície. Per tant, l'última característica és que no pot ser les propietats i mètodes no estan definits cos. Mitjançant l'examen de la diferència entre una classe abstracta de la interfície, s'ha d'insistir més en particular. Per tant, la primera s'hereta, mentre que el segon - es realitza. persona sense experiència pot semblar intranscendent. Però el fet és que es pot heretar una sola classe, i es va adonar - tant com sigui necessari. Això és el que és diferent de la interfície de la classe abstracta. Java segueix sent les característiques que només pot descriure mètodes públics i constants estàtiques abstracte. Però en les mateixes interfícies també pot ser heretada. Cal assenyalar que els operadors utilitzats són públics a través de públic.
L'herència múltiple d'interfícies
Aquesta funció no està disponible per a les classes en molts llenguatges de programació (per exemple, Java considerat per nosaltres). Això es deu a una sèrie de problemes. Com a tals ambigüitats indiquen que es produeixen en successió. Aquesta va ser la raó de la introducció de l'herència múltiple interfície. Això resol parcialment els problemes existents, però no tots. Així, gràcies als principis d'encapsulació i polimorfisme, les interfícies poden ser implementades amb èxit en diferents classes d'acord amb diversos mètodes (encara que tindran el mateix nom). Però no us oblideu dels problemes existents. Per tant, quan es treballa amb múltiples interfícies haurà d'especificar sempre que tenim en ment. A més, els problemes seran i quan intenta treballar amb el mateix nom de dues maneres - en aquest cas, no seran capaços d'aprofitar. Per tant, en aquests casos, cal tenir cura de la presència de les vendes totals.
abstracte de dades
Aquest concepte és clau per al programa. En aquest cas, en virtut de l'abstracció de revisió independent i entendre la separació de la interfície i la implementació. Vegem un exemple. Tenim una televisió, la qual cosa és un objecte o mòdul. Té una interfície. Com a tals, són els controls, així com so i imatge. S'utilitza la interfície més perfecte, el més còmode del televisor en ús. Podem canviar d'un programa prement qualsevol botó. En aquest cas, no hi ha necessitat de pensar en els processos físics a la televisió. Tenir cura d'ells especialistes, que recullen el dispositiu. Ens agrada la gent només estan interessats en propietats. Tornant a la programació, es pot dir que estan en una interfície i la implementació similar. A més, si una persona té confiança en el seu coneixement, que pot "eliminar" cobreix la nostra televisió hipotètica i millorar-lo. Encara que això pot portar a èxit local, en la majoria dels casos, el resultat final és negatiu. Per tant, en la prohibició de programació suportat d'accés i per ocultar els components interns de les dades abstractes. El principi d'aquest mecanisme proporciona una manera d'evitar que l'ajust intencional o no dels components interns. I quan es parla de tipus abstractes de dades, la mitjana d'un conjunt d'un conjunt d'operacions que es poden realitzar en ells.
objectes
Ja hem vist una classe abstracta i la interfície en general i general. Ara el detall de deixar que el nostre coneixement. Per començar objectes prestar atenció. A sota d'ells, en general, conscients de la realitat ambiental que existeix en l'espai i el temps. Però identificar formalment objectes dins el programa és difícil (amb el punt de vista filosòfic i teòric). Per tant, es deu a les seves propietats. Com un exemple, la següent: Un objecte pot identificar (amb un nom únic), és en un cert estat i utilitza un cert patró de comportament.
herència
Atès que la programació es basa en una estructura jeràrquica d'arbre la construcció de relacions entre els objectes, es planteja la qüestió sobre el fet que les propietats subjacents dels tipus de biblioteques de codi parentals van ser transferits. Sota l'herència entendre la relació quan algú es repeteix el comportament i l'estructura d'una altra cosa. A la vida ordinària, que es pot trobar a tot arreu. Tal va ser ajornada i programació d'elements relativament abstractes. A tall de comparació, el fet que no hi ha tal cos com un ocell. Aquest és un nom abstracte. Com una instància específica conduir te, Nightingale o pardal. Gràcies a l'herència que podem utilitzar les biblioteques de classes, així com per desenvolupar-los per a un programa en especial. Aquesta eina ens permet crear nous objectes, afegir o canviar les propietats d'una ja creada de forma simultània. Hereu es porta tots els mètodes i camps del seu avantpassat i adquireix els seus propis atributs, si cal. A causa del fet que hi ha elements abstractes i el principi de l'herència, hi ha àmplies oportunitats per a la modificació dins de la programació orientada a objectes. A més, permet un enfocament flexible per a la solució de problemes. Quan s'hereta una nova classe de dades i funcions transferides.
polimorfisme
Cal aplicar la mateixa funció per a resoldre diferents tipus de problemes. En aquest cas proporciona la presència de la possibilitat d'una acció diferent, el contingut de la qual dependran del tipus d'objecte amb el qual es realitza el treball. Sota el polimorfisme comprendre les propietats dels elements que tenen un pare comú, per dur a terme similar al significat semàntic del problema de diferents maneres. Fem una analogia amb els animals. Hi ha acció - per funcionar. Tots sabem com succeeix. No obstant això, diferents animals (lleó, elefant, el ximpanzé, el cocodril, tortuga) aquesta acció es durà a terme de diferents maneres. En aquest cas, el seu moviment és promotor responsable, que si cal es pot causar per un cas particular d'una rutina determinada, algoritme i la implementació amb èxit. Això es realitza mitjançant una sèrie de mètodes. Al mateix temps en cada programador classe especifica quin objecte propietats que són inherent. Canviar alguna cosa en la descendència, es pot aconseguir una acció específica, desitjada en aquest cas. Aquest efecte s'anomena polimorfisme d'objectes. En general, una classe abstracta és una eina extremadament útil per a la programació.