Je ne sais pas si cette question est valide ou je fais quelque chose de mal à définir la structure de classe parente.
Mais les éléments suivants sont la formation des classes et l'interface sont.
public interface Test {
public void print();
public void write();
}
class Parent implements Test{
@Override
public void print() {
System.out.print("This is parent class");
}
@Override
public void write() {
System.out.print("This is write method in parent class");
}
}
class Child extends Parent{
@Override
public void print(){
System.out.print("This is child class);
}
}
Sortie prévue lorsque je méthode appel à l'aide de l'interface
Test test = new Parent();
test.print();
Il devrait appeler la méthode d'impression à partir de la classe de l'enfant.
Et quand je l'appelle méthode utilisant l'interface
Test test = new Parent();
test.write();
Il devrait appeler la méthode d'écriture de la classe parente.
Donc, en ce moment, il ne se produit pas, dans les deux cas, il est d'appeler la méthode de la classe parente.
Ainsi, toute suggestion ou réponse sont très appréciés.
En utilisant:
Test test = new Parent();
test.write();
votre test
est de type Parent
et ne connaît pas Child
. D' où votre sortie indique les deux méthodes sur la Parent
classe sont appelées.
Essayer:
Test test = new Child();
test.print(); // Will call Child::print()
test.write(); // Will call Parent::write()
et vous devriez obtenir ce que vous voulez.
NB Pour que cela fonctionne, vous devez ajouter write()
à votre Test
interface, ainsi:
public interface Test {
public void print();
public void write(); // This is required for it to be accessible via the interface
}