Calquera que teña calquera pouco de coñecemento en programación, preguntando sobre por que hai clases base abstractas. Cal é o seu propósito? Como crear unha clase abstracta? Cales son as vantaxes que ofrecen na práctica? Por que son necesarios na programación e algunhas características da súa aplicación debe ter en conta?
clases abstractas
Entón, na programación chamada código de unidade con base nas que os obxectos non poden ser creados. Nótese que esta clase de sucesores non pode ser abstracto. Polo tanto, a creación de obxectos en base neles é moi posible. Se consideramos o exemplo de Java, construímos un modelo que podemos describir os construtores na clase A. Pero para usalos, non podemos. O camiño para saír desta situación é a declarar calquera referencia variábel. E ten que ser claramente definida para que apunta a un obxecto da clase A. Isto é como iso se pode facer? Isto pode axudar a traer. Débese ter en conta que a clase pai sempre considerado para ser máis versátil do que o descendente. En moitas linguaxes de programación usada para levar automaticamente. Pero se non hai confianza na presenza dun mecanismo tal, entón ten que facer referencia explícita ao obxecto.
métodos abstractos
Que son eles? chamada Abstract aqueles métodos que non son aplicados nesta clase. Así, tras parénteses (que lista os argumentos aquí utilizados) non dan apertura pantalla (tras o que o bloque co- situado descrición do método), e só un punto e coma. Así, neste caso, non hai información sobre o que fai. Aquí, a pregunta pode ser feita: "E o método sen implantación?" Ao final, non é para ser usado! Claro que, en clase, onde se describe, isto non é posible. Pero se consideramos a situación do punto de vista dun descendente, pode ser chamado. E vai operar nunha descrición específica dispoñible nesta clase.
Características métodos abstractos
Hai limitacións en usalos. Imos considerar o exemplo da linguaxe de programación Java. Hai unha demanda a clase ten polo menos un tal método, que debe ser abstracto. E en calquera caso, é apropiado utilizar unha tal construción? Imos entender iso cun exemplo de clase animais. Para comezar a entender que non hai son que son publicados. Polo tanto, na clase máis xeral non está definido sólida implantación do método. Pero o corpo creado que ademais vía bloques para el. E a continuación, ao crear clase can, gato ou hamster será prescrito un método único para iso, no marco da cal serán difundidas a todas as funcionalidades.
interface
Na programación creou moitas ferramentas cuxo propósito - para axudar a xente a facer un produto de boa calidade. E o tema en consideración debe ser dada a este aspecto, e que todo o mundo sabe Ao contrario de unha clase abstracta desde a interface. Así, a última característica é que non pode ter as propiedades e métodos non son definidos corpo. Ao examinar a diferenza entre unha clase abstracta desde a interfaz, debe habitar máis dun particular. Así, o primeiro é herdada, mentres que o segundo - se realiza. persoa inexperto pode parecer irrelevante. Pero o certo é, que se pode herdar só unha clase, e entender - na medida do necesario. Iso é o que é diferente da interface da clase abstracta. Java é aínda as características que só pode ser descrito abstracto métodos públicos e constantes estáticas. Pero as mesmas interfaces tamén pode ser herdada. Cómpre salientar que os operadores utilizados son públicos vía pública.
herdanza múltiple de interfaces
Esta característica non está dispoñible para as clases en moitas linguaxes de programación (por exemplo, Java consideradas por nós). Isto é debido a unha serie de problemas. Como tales ambigüidades indican que teñen lugar en sucesión. Esta foi a razón para a introdución de herdanza de interface múltiple. Isto resolve parcialmente os problemas existentes, pero non todos. Así, grazas aos principios de encapsulamento e polimorfismo, interfaces poden ser aplicadas con éxito en diferentes clases segundo varios métodos (aínda van ter o mesmo nome). Pero non esqueza sobre os problemas existentes. Entón, cando se traballa con múltiples interfaces terá que especificar sempre que temos en mente. Ademais, os problemas van ser e cando se trata de traballar co mesmo nome de dous xeitos - neste caso, non serán capaces de aproveitar. Polo tanto, en tales casos, é necesario coidar da presenza das vendas totais.
datos abstracto
Este concepto é fundamental para o programa. Neste caso, baixo a abstracción da análise independente e comprender a separación da interface e implementación. Vexamos un exemplo. Temos unha televisión, o que é un obxecto ou módulo. Ten unha interface. Como tal, son os controis, así como son e imaxe. A interface máis perfecto se usa, máis cómodo a TV en uso. Podemos cambiar entre programas premendo calquera botón. Neste caso, non hai necesidade de pensar sobre os procesos físicos na TV. Coidar deles especialistas, que recollen o dispositivo. Gústanos xente só están interesados en propiedades. Voltar á programación, podemos dicir que eles están nunha interface e implementación similar. Ademais, se unha persoa está seguro no seu coñecemento, pode "eliminar" cubrir a nosa televisión hipotética e melloralo. Aínda que isto poida levar ao éxito local, na maioría dos casos, o resultado final é negativo. Polo tanto, a prohibición de programación soportada de acceso e para ocultar os compoñentes internos de datos abstractos. O principio deste mecanismo proporciona unha forma de evitar o axuste intencional ou non intencionada dos compoñentes internos. E cando se fala de tipos de datos abstractos, a media dun conxunto de un conxunto de operacións que se poden realizar sobre eles.
obxectos
Vimos unha clase abstracta e interface en xeral e xeral. Agora imos detallar o noso coñecemento. Para comezar obxectos prestar atención. Por baixo deles, en xeral, conscientes da realidade ambiental que existe no espazo e no tempo. Pero identificar formalmente os obxectos dentro do programa é difícil (co punto de vista filosófico e teórico). Polo tanto, é debido ás súas propiedades. Como un exemplo, o seguinte: Un obxecto pode ser identificado de forma única (cun nome único), que se nun determinado estado e utiliza un certo nivel de comportamento.
herdanza
Como a programación está baseada nun xerárquicos construción de relacións de árbore entre os obxectos, a cuestión é levantada sobre o feito de que as propiedades subxacentes dos tipos de bibliotecas de código parental foron trasladados. Baixo herdanza entender a relación cando alguén se repite o comportamento ea estrutura de outra cousa. Na vida común, se pode atopar en todas partes. Tal foi adiada e programación elementos relativamente abstractos. Como comparación, o feito de que non existe tal corpo como un paxaro. Este é un nome abstracto. Como unha instancia específica levar té, Nightingale ou pardal. Grazas á herdanza podemos usar as bibliotecas de clase, así como para desenvolver-las para un programa concreto. Esta ferramenta permítenos crear novos obxectos, á vez engadir ou cambiar as propiedades dun xa creado. Herdeiro recibe todos os métodos e campos de seu antepasado e adquire os seus propios atributos, se é necesario. Debido ao feito de que hai elementos abstractos e principio de herdanza, existen amplas oportunidades para a modificación dentro da programación orientada a obxectos. Ademais, permite un enfoque flexible para a solución de problemas. Cando herdar unha nova clase de datos e funcións transferidas.
polimorfismo
Cómpre aplicar a mesma función para resolver distintos tipos de problemas. Neste caso proporciona a presenza da posibilidade dunha acción diferente, o contido do que dependerá do tipo de obxecto co que o traballo está feito. Baixo polimorfismo entender as propiedades dos elementos que teñen un pai común, para realizar semellante ao significado semántico do problema de diferentes xeitos. Nós facer unha analoxía cos animais. Hai acción - para realizar. Todos sabemos como isto ocorre. Pero diferentes animais (León, elefante, chimpancé, crocodilo, tartaruga) esta acción realizada de diferentes xeitos. Neste caso, o seu movemento é creador responsable, que se é necesario pode causar a un determinado caso unha rutina determinada, algoritmo e implementar lo correctamente. Isto faise mediante un conxunto de métodos. Ao mesmo tempo, en cada un programador clase especifica cal o obxecto propiedades que lle son inherentes. Cambiar algo na prole, pode conseguir acción específica, desexada neste caso. Tal efecto chámase polimorfismo de obxectos. En xeral, unha clase abstracta é unha ferramenta moi útil para a programación.