Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIDAD 3 HERENCIA La herencia permite crear una clase a partir de otra ya existente. La clase nueva (llamada subclase, clase derivada o clase hija), accede a los elementos de la clase existente (superclase, clase base o clase padre). Generalmente, se agregan más atributos y métodos particulares a la nueva clase. Por eso se dice que una subclase es una especialización de la superclase. La herencia es una forma de reutilización de software en la que las clases se crean absorbiendo los atributos y métodos de una clase existente, y se mejora con nuevas capacidades o con modificaciones a las capacidades ya existentes. La reutilización de software ahorra tiempo durante el desarrollo de programas. También fomenta la reutilización de software probado y depurado de alta calidad, lo cual aumenta la probabilidad de que un sistema se implemente con efectividad (Deitel). El siguiente diagrama de clases representa la herencia entre dos clases. En este caso, la clase B hereda de la clase A Entonces se puede decir que B es clase hija de A, que B es la clase derivada de A, o que B es subclase de A, o simplemente que B es un A. Análogamente, se puede decir que A es la clase padre de B, que A es la clase base de B, o que A es la superclase de B (no se puede decir que A es un B). Para representar la relación de herencia entre dos clases, se usa una flecha que parte de la clase hija y termina en la clase padre, con una punta no sólida. De este diagrama se pueden concluir, entre otras, las siguientes afirmaciones: Un objeto de la clase A tiene dos atributos: w,x, con dos métodos: uno(), dos() Un objeto de la clase B tiene tres atributos: w,x,y con tres métodos: uno(), dos(), tres(). Para un objeto de la clase B, tanto los atributos w,x como los métodos uno(),dos() los tiene por herencia de su superclase A. No obstante, en lenguajes como Java, no tiene acceso a esos elementos heredados cuando son privados. Es posible crear un objeto de la clase hija en una referencia de la clase padre, es decir, se puede crear un objeto de la clase B en una referencia de la clase A, aunque solo serán visibles los atributos y métodos definidos en la clase A (los elementos definidos en la clase B seguirán existiendo, pero no serán visibles desde una referencia de A) No es posible crear un objeto de la clase padre en una referencia de la clase hija A su vez, la clase hija puede tener su propia clase derivada: Un objeto de la clase C tendrá como atributos w,x,y,z, y como métodos uno(), dos(), tres() y cuatro(). También, una clase puede tener varias clases hijas, llegándose a formar las llamadas jerarquías de clases, como en los siguientes ejemplos. Note como una clase padre puede tener una o más clases hijas, pero una clase no puede tener más de una clase padre. A esto se le conoce como herencia simple. Cuando una clase tiene más de una clase padre, se tiene una herencia múltiple, la cual es soportada por lenguajes como C++, pero no por otros como Java o C#. Entonces, sólo abordaremos la herencia simple.
Compartir