понедельник, 5 декабря 2011 г.

instanceof

Что будет выведено в результате выполнения этого кода?

class A {
}

class B extends A {
}

class C extends B {
}

class D {
}

public class Main {

    public static final void main(String[] args)  {
        B b = new C();
        A a = new C();
        D d = new D();
        System.out.println(b instanceof A);
        System.out.println(a instanceof B);
        System.out.println(d instanceof C);
    }
}
1. true true false
2. true false false
3. Ошибка компиляции

Ответ:
3. Ошибка компиляции. Так произойдет, потому что D и C находятся на разных ветках иерархии и не приводимы друг к другу.

Источник: http://habrahabr.ru/blogs/java/131198/

Комментариев нет:

Отправить комментарий