Las tres funciones orientadas a objetos de Java y el aprendizaje polimórfico de Java-LeByte

Hola a todos, este artículo les traerá el polimorfismo de Java.

Las anteriores son las seis tareas principales de este estudio. Veámoslos uno a uno.

1 clase de objeto

La clase Object es la clase base raíz de todas las clases Java.

Si la palabra clave extiende no se usa en la declaración de clase para indicar su clase base, la clase base predeterminada es la clase Objeto.

class Person{
    
    
	
}

Equivalente a

class Person extends Object{
    
    
}

VX lezijie007 (cifrado 33)

1. El proceso de instanciación del objeto

La instanciación de una clase se crea desde la superclase de nivel superior, que es una estructura de envoltura capa por capa. "Primera clase principal y luego clase secundaria, estática primero y luego miembros".

⑴toString método

toString: la representación de cadena del objeto

El método público String toString () se define en la clase Object, y su valor de retorno es de tipo String, que se utiliza para describir la información relevante del objeto actual.

Al conectar String y otros tipos de datos (como: System.out.println ("hola" + persona)), el método toString () de la clase de objeto se llamará automáticamente

Puede anular el método toString () en el tipo definido por el usuario según sea necesario.

Método methodequals

es igual a: comparar igual, la comparación de direcciones predeterminada ("la comparación del primer cuadro"), para comparar el segundo cuadro, debe volver a escribir este método

Definido en la clase Object: método public boolean equals (Object obj)

Proporcionar lógica para definir si los objetos son "iguales"

El método equals de Object se define como: x.equals (y) devuelve verdadero cuando xey son referencias al mismo objeto; de lo contrario, devuelve falso

Algunas de las clases proporcionadas por el JDK, como String, Integer, Date, etc., han reescrito el método equals de Object, llamando al método equals de estas clases, x.equals (y), cuando los objetos referenciados por xey son objetos del mismo tipo. Y cuando el contenido del atributo es igual (no necesariamente el mismo objeto), devuelve verdadero; de lo contrario, devuelve falso.

Puede anular el método equals en tipos definidos por el usuario según sea necesario

Ejercicio: Vuelva a escribir los métodos toString y equals de las clases "Person" y "Student" previamente definidas y pruébelos.

2 Transformación de objetos (casting)

Una variable de tipo de referencia de una clase base puede "señalar" un objeto de su subclase.

Una referencia a una clase base no puede acceder a los nuevos miembros (incluidas propiedades y métodos) de sus objetos de subclase.

Puede usar "instancia de variable de referencia del nombre de clase" para determinar si el objeto "apuntado" por la variable de tipo de referencia pertenece a esta clase o una subclase de esta clase.

Los objetos de subclase se pueden utilizar como objetos de la clase base, llamados upcasting y viceversa, downcasting

  • Ejemplo 1:

Hay clase Animal (clase principal), clase Gato (subclase), clase Perro (subclase).

  • prueba:

Referencia de clase principal = objeto de clase principal

Referencia de subclase = objeto de subclase

Referencia de clase principal = objeto de subclase

La clase principal invoca las propiedades y métodos heredados de la clase principal.

La clase padre hace referencia a las propiedades y métodos únicos de la subclase (abatido).

La instancia de objeto de subclase de la clase padre.

Después de la conversión de tipos forzada, se pueden llamar a los miembros únicos (atributos y métodos) de la subclase.

  • Ejemplo 2:

La prueba utiliza el parámetro principal y el objeto de subclase como parámetro real

1. Sobrecarga

2. Llame a los miembros únicos de la subclase mediante conversión de tipo forzada

3 polimorfismo

Enlace estático (enlace estático) : se completa durante la compilación, lo que puede mejorar la velocidad de ejecución del código. Los métodos de enlace estático incluyen:

  1. Método estático

  2. Constructor

  3. método privado

  4. Método llamado con la palabra clave super

Enlace dinámico (enlace dinámico) : se refiere a "durante la ejecución (no durante la compilación)" para determinar el tipo real del objeto referenciado y llamar a su método correspondiente según su tipo real. Aunque esto nos da flexibilidad en la programación, reduce la velocidad de ejecución del código. Esta es también una de las principales razones por las que JAVA es más lento que C / C ++.

Polimorfismo, polimorfismo es una variedad de formas, estrategia difusa, para seguir cambiando, el polimorfismo puede escribir código más general.

El concepto de polimorfismo se desarrolló en base a la encapsulación y la herencia. La subclase aparece como padre, pero aún se implementa a su manera al hacer las cosas.

Cuando se llama a lo mismo con el mismo método y los mismos parámetros, el comportamiento es diferente.

Hay tres condiciones necesarias para que ocurra el polimorfismo: debe haber herencia, debe haber reescritura y la referencia de la clase principal apunta al objeto de la clase secundaria.

Ejemplo polimórfico:

  • Ejemplo 1 (debe dominar y ver a través):

Animal gato perro

Ejemplo 2 (Mejorar la comprensión del polimorfismo): primero piense y luego corra para ver los resultados

  • Cuatro principios de resolución de problemas:

1. Cadena de herencia, no encontró padre;

2. Compilar para ver el tipo + determinar la tabla de métodos, ejecutar para encontrar el objeto

3. El principio de lo mejor más cercano: no encontré a mi padre

4. Se produce polimorfismo y la clase base no es visible para el nuevo método de la subclase.

4 clase abstracta

Cuando la palabra clave abstracta se usa para modificar una clase, la clase se llama clase abstracta; cuando la palabra clave abstracta se usa para modificar un método, el método se llama método abstracto.

Las clases que contienen métodos abstractos deben declararse como clases abstractas, las clases abstractas deben heredarse y los métodos abstractos deben reescribirse

No se puede crear una instancia de la clase abstracta

Los métodos abstractos solo deben declararse pero no implementarse

Ejemplo: los animales gritarán cuando estén felices, pero para diferentes tipos de animales, sus respectivas llamadas son diferentes, y las llamadas / llamadas de los animales (la categoría principal) nunca pueden satisfacer las necesidades de las subcategorías.

5 interfaz

La interfaz es una colección de métodos abstractos y definiciones de valores constantes.

En esencia, una interfaz es una clase abstracta especial, que contiene solo la definición de constantes y métodos, pero no la implementación de variables y métodos.

Se puede entender por la semántica que para cierto tipo de abstracción de acciones, comportamientos y funciones, la definimos como una interfaz, que es solo una especificación estándar y completa, y no es adecuada para ser definida como una clase. Por ejemplo: la función de volar, los aviones pueden volar (con la función de volar), los pájaros pueden volar (con la función de volar) y los insectos también pueden volar. Generalmente, no definimos una clase Fly, que es semánticamente impráctica, así que esta es solo una Una función, una especificación, podemos definirla como una especie de interfaz para que otras clases la implementen

Características de la interfaz

  1. Varias clases no relacionadas pueden implementar la misma interfaz
  2. Una clase puede implementar múltiples interfaces no relacionadas
  3. Similar a la relación de herencia, existe polimorfismo entre la interfaz y la clase de implementación

Defina el formato de sintaxis de la clase Java:

<modificador> clase <nombre> [extiende <superclase>] [implementa <interfaz> [, <interfaz>]…] {…}

  1. Las propiedades declaradas en la interfaz son public static final por defecto y solo pueden ser public static final;

  2. Solo se pueden definir métodos abstractos en la interfaz, y estos métodos son públicos de forma predeterminada y solo pueden ser públicos

  3. La interfaz puede heredar otras interfaces y agregar nuevas propiedades y métodos abstractos

  4. La interfaz no puede implementar otra interfaz, pero puede heredar muchas otras interfaces

  5. Ejemplo de interfaz: Cantar esta habilidad Pintar esta habilidad.

Ejercicio: diseñe la interfaz para implementar la siguiente estructura

6 Comprensión de tres características orientadas a objetos

Al escribir código, buscamos "alta cohesión y bajo acoplamiento" para lograr la reutilización y la especificación, necesitamos usar tres características orientadas a objetos para lograr:

Encapsulación : encapsulación ocultar información

Herencia : continuación de la herencia + información ampliada de la clase principal

Polimorfismo : estrategia difusa de polimorfismo para seguir cambiando

Función de encapsulación:

a) Realizar la división profesional del trabajo, el desarrollo de submódulos y subfunciones en el trabajo.

b) Ocultar información y detalles de implementación. Haga que los cambios en el código sean más seguros y fáciles

Herencia : para lograr la reutilización del código, continuación + extensión de la información de la clase principal

Polimorfismo : sigue cambiando (como la interfaz USB, siempre que logres mi estándar, puedes conectar la computadora)

Nota:

Aunque las tres características principales de Java son simples, pueden comprender realmente su significado. Sin un año y medio de aprendizaje, no pueden comprenderlas.

Supongo que te gusta

Origin blog.csdn.net/dirft_lez/article/details/108062383
Recomendado
Clasificación