Sé cómo sobrecargar un método y cómo anular un método. Pero, ¿es posible sobrecargar AND anular un método al mismo tiempo? Si es así, por favor dé un ejemplo.Sobrecargado y anulado en Java
Respuesta
La sobrecarga y la anulación son cosas complementarias, la sobrecarga significa el mismo nombre de método pero diferentes parámetros, y anulación significa el mismo nombre de método en una subclase con los mismos parámetros. Por lo tanto, no es posible sobrecargar y sobreescribir al mismo tiempo porque la sobrecarga implica diferentes parámetros.
Ejemplos:
class A {
public void doSth() { /// }
}
class B extends A {
public void doSth() { /* method overriden */ }
public void doSth(String b) { /* method overloaded */ }
}
Saludos!
sobrecarga y sobrecarga son solo abstracciones. La sobrecarga solo significa que el compilador usa el nombre junto con los tipos y la cantidad de parámetros para direccionar a qué función llamar. En realidad, la sobrecarga de un método no es diferente de nombrarlo de otra manera porque la clave que usa el compilador para buscar la función es una combinación de nombre y lista de parámetros.
Reemplazar es una especie de principio similar, excepto que el compilador puede abordar la función reemplazada con la palabra clave super
.
¿Puede anular una función sobrecargada? Sí, ya que el método sobrecargado es un método completamente diferente a los ojos del compilador.
Reemplazar no es lo mismo en absoluto. La decisión sobre qué método llamar se difiere al tiempo de ejecución. El compilador no lo decide. – EJP
¡Gracias, es útil! –
@EJP - En última instancia, el compilador toma la decisión, incluso si se abstrae mediante la construcción de un vtables y la asignación de vipinters para facilitar el despacho dinámico. Los lazos que se unen tienen que ser inicializados en alguna parte. – nsfyn55
Depende de lo que usted diga. Un método puede ser una anulación de un método sobrecargado en una superclase. Y puede sobrecargar un método que está anulando simultáneamente utilizando otro método.
Sin embargo, no puede tener un método que sea tanto una nueva sobrecarga y una anulación. Para que un método sea una anulación, otro método con la misma firma ya debe existir en la superclase ... y eso significa que este método no puede ser nuevo anular.
- 1. No se puede resolver un método F # que ha sido anulado y sobrecargado desde C#
- 2. métodos Como llamar sobrecargado Java en Clojure
- 3. ! Important Anulado
- 4. ¿Qué es este tipo de método anulado llamado en Java?
- 5. Cómo forzar a un método a ser anulado en Java?
- 6. sustituida y se constructora no anulado
- 7. Servicio Android anulado y variables estáticas
- 8. Choque de nombres genéricos de Java, método no correctamente anulado
- 9. Java no llama al método paintComponent sobrecargado del componente
- 10. Cómo sellar una propiedad anulado
- 11. C++ sobrecargado método puntero
- 12. Ignorar globalmente anulado nuevo/eliminar
- 13. Anulado/Ejecución de TransactionScope Rollback
- 14. ¿Qué es un operador sobrecargado en C++?
- 15. Acceso C++/CLI sobrecargado [] operador en C#
- 16. Usando == operador sobrecargado en una función genérica
- 17. operador sobrecargado no lanzar excepciones
- 18. Nuevos problemas de operador sobrecargado
- 19. función sobrecargado en ASP clásico JScript
- 20. Ninguna conversión implícita en el operador sobrecargado
- 21. referencia deseada método genérico sobrecargado
- 22. Uso sobrecargado del rendimiento rendimiento
- 23. ¿Cómo se obtiene la "referencia de objeto" de un objeto en java cuando toString() y hashCode() se han anulado?
- 24. métodos PHP quedar anulado de clase hija
- 25. Cómo llamar a un destino MSBuild anulado
- 26. ¿El operador C++ * "ya está sobrecargado"?
- 27. El operador sobrecargado no se detecta
- 28. Cómo llamar a métodos anulado en todas las clases derivadas
- 29. C# Genérico método sobrecargado despachar ambigua
- 30. Declaración de Acceso Base Clase Método sobrecargado
Si lo desea, puede anular un método sobrecargado. Es lo más cercano que puede llegar. – user845279
Cuando esto sucede, ¿cuál es el responsable del enlace (en términos estáticos o dinámicos) del método, entonces? ¿Anulación o sobrecarga? – zgulser