Quelqu'un peut-il expliquer le fonctionnement du code suivant ...?Quelqu'un peut-il expliquer le fonctionnement du code suivant ...?
interface myInterface{}
public class Main {
public static void main(String[] args) {
System.out.println(new myInterface(){public String toString(){return "myInterfacetoString";}});
System.out.println(new myInterface(){public String myFunction(){return "myInterfacemyFunction";}});
}
}
sortie est ...
myInterfacetoString
[email protected]
Toutes les réponses en disant que MyInterface dans l'instruction println() est classe anonyme. Mais comme je l'ai déjà déclaré en tant qu'interface, pourquoi me permet-il de créer une classe anonyme de même nom ....?
à nouveau ... si ceux-ci sont des classes anonymes alors la classe principale devrait me permettre de donner un nom à ces classes..But anonymes si essayer de faire so..I'm obtenir erreur de compilation
Est-ce un devoir ou une curiosité? C'est considéré comme une bonne forme d'étiqueter les questions de devoirs en tant que tels. – ojrac
Siddhi, bonne question. Cependant, je suggère que vous ne changiez pas la question trop souvent avec un contenu significativement nouveau. Au lieu de cela, vous pouvez soumettre une nouvelle question et y faire référence. – akf
Cela crée une instance d'une classe anonyme implémentant une interface vide. On substitue toString() afin que System.out.println l'utilise automatiquement. L'autre a myFunction, qui n'est pas appelé, donc il utilise Object toString() qui donne un peu d'information incluant l'adresse de l'objet. – mk12