|
|
|
|
- Presentación
- Sintaxis
- Herencia de clase
- Sintaxis detallada
- Sintaxis conservada para compatibilidad con versiones anteriores
- Redefinición de métodos
- Ejemplo
- Ejemplo
- Sintaxis utilizada para llamar a un método de clase base
- Sintaxis 1
- Sintaxis 2
- Sintaxis 3
- Observación
La organización jerárquica en clase y subclase ha permitido crear la noción de herencia. En otras palabras, un objeto de la subclase A (clase derivada) que tiene las mismas características que la clase B (clase ancestral), así como sus propias características, hereda de todas las características de la clase B sin tener que duplicar los programas en el objeto de la subclase A.. El número de líneas de código se reduce. La herencia es el mecanismo por el cual la clase actualmente descrita utiliza los métodos y los miembros definidos en las clases existentes. - La clase existente se llama Clase de antepasados o Clase base.
- La nueva clase se llama Clase derivada. La clase derivada incluye la clase de los ancestros y añade nuevos métodos, nuevos miembros y nuevas propiedades.
El propósito de la herencia es recuperar, para una clase, los métodos desarrollados para otra clase, añadiendo las características específicas de la nueva clase. Los objetos encontrados en una clase derivada pueden acceder a todos los métodos, todos los miembros y todas las propiedades de las clases de ancestros; es como si los métodos, los miembros y las propiedades de las clases de ancestros fueran parte de la clase derivada. Características de la herencia: - Una herencia puede ser múltiple. En este caso, la clase derivada puede derivar de varias clases de ancestros.
- Una herencia puede ser privada o pública (por Default).
Si la herencia es pública, tiene la posibilidad de acceder a los métodos, las propiedades y los miembros heredados de fuera de la clase.. Si la herencia es privada, sólo los métodos de la clase derivada pueden acceder a los métodos, propiedades y miembros heredados. - Como en todos los idiomas, el polimorfismo opera sólo con los objetos dinámicos.
Herencia de clase <NameDerivedClass> is class [PRIVATE, PROTECTED, PUBLIC] Inherits from <NameAncestorClass> <Name Member Derived Class> is <Member Type> ... END Sintaxis detallada <NameDerivedClass> Nombre que identifica la clase derivada que se declara actualmente.
PRIVATE, PROTECTED, PUBLIC Palabra clave opcional. Indica si la herencia es privada o no. Si no se especifica esta palabra clave, la herencia es pública.
<NombreClaseAncestor> Nombre de la clase de antepasados.
<Nombre del Miembro Derivado Clase> Nombre del miembro de la clase derivada. Este miembro sólo se puede utilizar en un objeto de la clase derivada.
<Tipo del miembro> Tipo de miembro, elegido entre los tipos disponibles. FileName is Class Name is string Extension is string Directory is string END FileInformation is Class inherits from FileName FileSize is int FileDate is string FileTime is string END
Sintaxis conservada para compatibilidad con versiones anteriores <NameDerivedClass> is class [PRIVATE, PROTECTED, PUBLIC] An object <NameAncestorClass> <Name Member Derived Class> is <Member Type> ... END En una clase derivada, un método de la clase base puede redefinirse creando en la clase derivada un método con el mismo nombre que el de la clase base. La redefinición de métodos se utiliza para modificar el comportamiento del método definido en la clase base; la clase derivada puede eventualmente redefinir el método de acuerdo con sus requisitos. El método redefinido es un método virtual de Default. Observación: WLanguage soporta la sobrecarga de un método (usando dos métodos con el mismo nombre en la misma clase).. Para obtener más información, consulte Prototipo overload/overload. Observación: los Objeto se utiliza una palabra clave para acceder al objeto actual dentro de un método Ejemplo El FileInfo que hereda de la clase Nombre de archivo clase. Estas dos clases tienen un método llamado Display. El método Display de la clase FileInfo utiliza el método Display de la clase FileName. | | Clase FileName | FileInfo class | Declaración de la clase | Declaración de la clase | FileName is Class Name is string Extension is string Directory is string END
| FileInformation is Class inherits from FileName FileSize is int FileDate is string FileTime is string END
| Método de visualización | Método de visualización | PROCÉDURE Display() Trace(:Name) Trace(:Extension) Trace(:Directory)
| PROCÉDURE DISPLAY() Ancestor:Display() Trace(:FileSize) Trace(:FileDate) Trace(:FileTime)
|
Ejemplo El polimorfismo opera sólo con los objetos dinámicos. En este ejemplo, se crea una clase de animal virtual. Dos clases (conejo y gato) heredan de esta clase. Queremos crear una lista de diferentes objetos (conejos y gatos). Animal is Class END Cat is Class inherits from Animal END Rabbit is Class inherits from Animal END
ListA is array of 16 dynamic animals ListA[1] = new cat ListA[1] = new rabbit
Sintaxis utilizada para llamar a un método de clase base Sintaxis 1 Detalles de la sintaxis
Antepasado palabra clave utilizada para indicar que el método a utilizar es el método de la clase de ancestros inmediatamente anterior (puede utilizarse para una sola herencia). Para llamar a un método de una clase base independientemente de su nivel en el orden de herencia, se debe usar la sintaxis #2..
Nombre del método> <Método Nombre del método a utilizar en la clase de los antepasados. Sintaxis 2 <Base Class>:<Method Name>() Detalles de la sintaxis
Clase de base> <Clase de base Nombre de la clase de ancestros donde se definió el método a utilizar.
Nombre del método> <Método Nombre del método a utilizar en la clase de los antepasados. Sintaxis 3 :<Base Class>:<Method Name>() Detalles de la sintaxis
Clase de base> <Clase de base Nombre de la clase de ancestros donde se definió el método a utilizar.
Nombre del método> <Método Nombre del método a utilizar en la clase de los antepasados.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|