interface I
{
void show();
}
class A implements I
{
void show()
{
System.out.println("class A");
}
public static void main(String s[])
{
I i=new A();
i.show();
i.toString();
}
}
Q> En tant qu'interface I ne contient pas la méthode abstraite toString() mais le code suivant est compilé. Comment?méthode de remplacement à l'aide de l'interface
lorsque la variable de super classe est utilisée pour faire référence à une sous-classe obj, alors le compilateur effectue d'abord une recherche sur la méthode similaire dans la super classe si elle n'est pas trouvée, elle donne une erreur. ici L'interface ne contient pas la méthode toString().
ex =>
class A
{
void show()
{
System.out.println("show");
}
}
class B
{
void show()
{
System.out.println("show B");
}
void display()
{
System.out.println("display B");
}
public static void main(String s[])
{
A a=new B();
a.show(); //will execute
a.display(); //give error
}
lorsque la variable de super classe est utilisée pour faire référence à une sous-classe obj, alors le compilateur recherche d'abord la méthode similaire dans la super classe si elle n'est pas trouvée donne une erreur. ici L'interface ne contient pas la méthode toString(). ex => classe A { void show() { System.out.println ("montrer A"); }} classe B { show void() { System.out.println ("show B"); } affichage vide() { System.out.println ("affichage B"); } public void principal (Chaîne s []) { A a = new B(); a.show(); // exécutera a.display(); // donne une erreur } – yash
Toutes les classes héritent de Object en Java. Donc Java sait quand il rencontre une interface, il sera soutenu par une classe concrète et aura donc les méthodes définies dans java.lang.Object –