public static void main(String[] args) {
// TODO code application logic here
Alien.reproduire(); // ne fonctionne pas
Pondre pond = new Alien();
pond.reproduire(); // Ne fonctionne pas.
}
public interface Reproduction {
public static void description() {
System.out.println("Méthode statique dans une interface");
}
}
public interface Pondre extends Reproduction {
public static void description() {
Reproduction.description();
System.out.println("Redéfinie dans Pondre.java");
}
default void reproduire() {
System.out.println("Je ponds des oeufs !");
}
}
public interface Mitose extends Reproduction {
public static void description() {
Reproduction.description();
System.out.println("Redéfinie dans Mitose.java");
}
default void reproduire() {
System.out.println("Je me divise !");
}
}
public class Alien implements Pondre, Mitose {
public void reproduire() {
System.out.println("Je suis un alien et :");
Pondre.super.reproduire();
Mitose.super.reproduire();
}
}
}
Tout le code fonctionne sauf quand j'essaie d'utiliser la méthode reproduire de la class Alien.
ca fait 2 jours que je me casque la tête pourriez vous m'aider à resoudre mon problème.
j'ai eu aussi quelques soucis avec ce code via le cours (étant apprenti dev), la solution pour toi semble être de déclarer la classe Alien en Static!
public class Main {
public static void main(String[] args) {
Pondre pond = new Alien();
pond.reproduire();
}
public interface Reproduction {
public static void description() {
System.out.println("Méthode statique dans une interface");
}
}
public interface Pondre extends Reproduction {
public static void description() {
Reproduction.description();
System.out.println("Redéfinie dans Pondre.java");
}
default void reproduire() {
System.out.println("Je ponds des oeufs !");
}
}
public interface Mitose extends Reproduction {
public static void description() {
Reproduction.description();
System.out.println("Redéfinie dans Mitose.java");
}
default void reproduire() {
System.out.println("Je me divise !");
}
}
public static class Alien implements Pondre, Mitose {
public void reproduire() {
System.out.println("Je suis un alien et :");
Pondre.super.reproduire();
Mitose.super.reproduire();
}
}
}
Aussi
Alien.reproduire(); // ne fonctionne pas
ne fonctionnera pas je pense car tu essaye d'appeler une classe avec une méthode. (Si j'ai bien suivi les cours )
Désolé du déterrage, je pense que ca peu aider d'autres élèves!
Aceman
Java 8 : interfaces methodes default
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tout le code fonctionne sauf quand j'essaie d'utiliser la méthode reproduire de la class Alien.
RicoBSJ