Некоторые странные моменты связанные с потребностью сделать Нисходящее Приведение (Java)

201
25 августа 2021, 12:50

Мой вопрос написал ниже в комментах программы с достаточно подробным описанием причины возникновения собственно самого вопроса.

import java.util.PriorityQueue;
import java.util.Queue;
interface Pol{
    void polik();
}
class Polsha implements Pol{
    public void polik(){
        System.out.println("hello");
    }
    public void ohh(){
        System.out.println("ohhh man");
    }
}
public class Test5_plus_2_level {
    public static void main(String[] args) {
        Queue<Integer> t = new PriorityQueue<>();
        t.offer(8);
        t.contains(8); //почему работает без нисходящего приведения???
                       //Queue ведь не содержит метод contains() и сам является
                       //интерфейсом, также как и Pol ниже,
                       //но требования компилятора судя по всему разные. 
        Pol polsha = new Polsha();
        ((Polsha) polsha).ohh();
        polsha.ohh(); //тут понятно почему НЕ работает.
    }
}
Answer 1

https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html

Queue наследует метод contains от Collection

READ ALSO
Сравнение символов в массивах

Сравнение символов в массивах

корректно будет использовать оператор "==" для сравнения двух символов из двух массивов? Не адреса в памята а именно совпадение знаков(если...

126
Не заходит в метод с аннотацией @PostConstruct (javax)

Не заходит в метод с аннотацией @PostConstruct (javax)

Можно ли вызвать определенный метод инициализация сразу после вызова конструктора с помощью аннотаций из javax?

83
Как отключить фоновый процесс?

Как отключить фоновый процесс?

Я делаю приложение на CordovaСтояла задача: создать плагин, который бы создавал фоновый процесс, который в свою очередь каждые 30 секунд отправлял...

281
Метод equals в классе Object и в моем

Метод equals в классе Object и в моем

Вот метод equals() в классе Object:

114