Maison >Java >javaDidacticiel >Pourquoi les interfaces Java ne pouvaient-elles pas avoir de méthodes statiques avant Java 8 ?
Depuis Java 8, les interfaces prennent désormais en charge les méthodes statiques. De plus, elles peuvent avoir des méthodes d'instance concrètes mais pas de champs d'instance.
Dans les versions antérieures de Java, les interfaces ne pouvaient pas contenir de méthodes statiques pour les raisons suivantes :
Les méthodes statiques ne peuvent pas être remplacées car elles sont résolues au moment de la compilation. La répartition dynamique est utilisée pour les méthodes d'instance lorsque le compilateur ne peut pas déterminer le type concret de l'objet et ne peut donc pas résoudre la méthode à invoquer. Cependant, comme les méthodes statiques nécessitent une classe connue, elles peuvent être résolues de manière statique, ce qui rend la répartition dynamique inutile.
En d'autres termes, si une superclasse et une sous-classe ont toutes deux des méthodes statiques avec la même signature, la méthode de la sous-classe sera toujours être invoqué en premier, en remplaçant la méthode de la superclasse. Cependant, cela est conceptuellement redondant car on peut toujours spécifier la classe contenant la version souhaitée de la méthode statique.
Concernant votre préoccupation supplémentaire concernant l'application d'une méthode de type constructeur pour IXMLizing, considérez ce qui suit :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!