método de classe criança chamada de classe pai usando a interface: Java

android_griezmann:

Eu não sei se esta pergunta é válido ou eu estou fazendo algo de errado com a definição da estrutura de classes pai.

Mas o seguinte é a formação das classes e interface.

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

saída esperada quando eu chamar o método usando a interface

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

Ele deve chamar o método da classe Criança de impressão.

E quando eu chamar o método usando a interface

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

Ele deve chamar o método write da classe pai.

Então, agora isso não está acontecendo, em ambos os casos é chamar o método da classe pai.

Assim, qualquer sugestão ou resposta são muito apreciados.

Dave:

Usando:

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

o seu testé do tipo Parente desconhece Child. Daí a sua saída indica ambos os métodos na Parentclasse são chamados.

Experimentar:

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

e você deve conseguir o que deseja.

NB Para que isso funcione, você deve adicionar write()à sua Testinterface, assim:

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

Acho que você gosta

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