En Java, une classe peut étendre une seule classe parente mais peut implémenter plusieurs interfaces. Avec l'introduction de méthodes par défaut dans l'interface Java 8, il y a la possibilité d'une classe héritant plus d'une méthode avec la même signature en mettant en œuvre 2 interfaces ayant la même méthode par défaut Cela peut créer des problèmes de diamant en C++Règles pour la résolution de probation Diamond ou l'héritage multiple dans Java8
exemple dans le code ci-dessous la sortie de
new C().hello(); is
This is Second
public interface First {
default void hello(){
System.out.println("This is First");
}
}
public interface Second extends First {
default void hello(){
System.out.println("This is Second");
}
}
public class MyClass implements First,Second {
public static void main(String[] args) {
new MyClass().hello();
}
}
Quelles sont les règles de résolution que Java utilise pour résol problème de diamant? Une réponse simple comme qui a préséance et quand sera grand.
Je me demandais beaucoup. Génial, vous avez soulevé ce problème. –