Вопрос интерфейса Java относительно полиморфизма - PullRequest
0 голосов
/ 22 марта 2011

Итак, у меня есть это:

interface C {
    void shutUp();
}

class A {
    public void speak() {
       System.out.println("Class a");
    }
}

class B extends A implements C {
    public void shutUp() {
        System.out.println("Saying nothing...");
    }

    public void speak() {
        System.out.println("Class B");
    }
}

Если я это сделаю, это сработает:

A obj = new B();
obj.speak()

Но я не могу сделать obj.shutUp() Почему бы и нет? У меня такое чувство, что я просто запутался в чем-то очень простом.

Спасибо!

Ответы [ 11 ]

0 голосов
/ 22 марта 2011

Ваш obj имеет интерфейс из класса A, так как это тип вашей переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...