Java: méthode de classe des enfants d'appel de la classe parent en utilisant l'interface

android_griezmann:

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.

dave:

En utilisant:

Test test = new Parent();
test.write();

votre testest de type Parentet ne connaît pas Child. D' où votre sortie indique les deux méthodes sur la Parentclasse 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 Testinterface, ainsi:

public interface Test {
    public void print();
    public void write(); // This is required for it to be accessible via the interface
}

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=478701&siteId=1
conseillé
Classement