Método clase hija llamada de clase padre usando la interfaz: Java

android_griezmann:

No sé si esta pregunta es válida o estoy haciendo algo mal con la definición de la estructura de la clase padre.

Pero los siguientes son la formación de las clases y la interfaz son.

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);
    }
}

Los resultados esperados cuando llamo método que utiliza la interfaz

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

Se debe llamar al método de impresión de la clase del niño.

Y cuando llamo método de uso de la interfaz

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

Se debe llamar al método de escritura de la clase padre.

Así que ahora mismo no está sucediendo, en los dos casos se llama al método de la clase padre.

Por lo que cualquier sugerencia o respuesta son muy apreciados.

Dave:

Mediante el uso:

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

tu testes de tipo Parenty no es consciente de Child. De ahí que su salida indica ambos métodos en la Parentclase se llaman.

Tratar:

Test test = new Child();
test.print();   // Will call Child::print()
test.write();   // Will call Parent::write()

y se debe lograr lo que quiere.

Nota: Para que esto funcione, debe agregar write()a su Testinterfaz, por lo tanto:

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

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=478703&siteId=1
Recomendado
Clasificación