La anulación y la sobrecarga de métodos son diferentes manifestaciones del polimorfismo de Java. La anulación es una manifestación de polimorfismo entre clases primarias y subclases, mientras que la sobrecarga es una manifestación de polimorfismo en una clase.
Si un método definido en una subclase tiene el mismo nombre y parámetros que su clase principal, decimos que el método está anulando. Cuando un objeto de una subclase usa este método, llamará a la definición en la subclase. Por ello, la definición en la clase principal parece estar "protegida".
Si se definen varios métodos con el mismo nombre en una clase y pueden tener diferentes números de parámetros, diferentes tipos de parámetros o diferentes órdenes de parámetros, se denomina sobrecarga de métodos. No se puede sobrecargar con permisos de acceso, tipos de devolución o excepciones lanzadas.
1. Sobrecarga de métodos (sobrecarga)
Concepto: En pocas palabras: la sobrecarga de métodos consiste en múltiples métodos de implementación de la misma función de una clase. El método que se utiliza depende de los parámetros proporcionados por la persona que llama.
Cosas a tener en cuenta:
(1) Los nombres de los métodos son los mismos (2) Los tipos de parámetros, número y orden de los métodos no son diferentes en al menos uno de ellos (3) Los tipos de retorno de los métodos pueden ser diferentes (4) Los modificadores de los métodos pueden ser diferentes Si solo los tipos de retorno son diferentes, no puede constituir una sobrecarga. Si la sobrecarga solo tiene diferentes símbolos de modificador de acceso de control, no puede constituir una sobrecarga.
El método sobrecargado puede cambiar el tipo de valor de retorno.
2. Anulación de método (anulación)
Concepto: En pocas palabras: la cobertura del método significa que la subclase tiene un método que tiene el mismo nombre, tipo de retorno y parámetros que un método de la clase principal. Luego decimos que el método de la subclase anula el método de la clase principal. clase.
Nota: Existen muchas condiciones para la cobertura del método. En términos generales, hay dos puntos a los que debe prestar atención:
(1) El tipo de retorno, los parámetros y el nombre del método del método de la subclase deben ser exactamente los mismos que el tipo de retorno, los parámetros y el nombre del método del método de la clase principal; de lo contrario, se producirá un error de compilación.
(2) Los métodos de subclase no pueden reducir los derechos de acceso de los métodos de clase principal (es posible lo contrario)
ejemplo:
Anular instancia