抽象类与接口上的instanceof

时间:2018-07-13 22:49:05

标签: java

abstract class Animal
{

}

class Cat extends Animal{}


class Dog extends Animal{}


class Eagle{}


interface CanFly
{}


class Tester{
public static void main(String... args)
{

    Eagle eagle = new Eagle();

    System.out.println(eagle instanceof Animal);  // compilation failure

    System.out.println(eagle instanceof CanFly);  // no compilation failure


}

}

我有点困惑为什么instanceof与抽象类一起使用时要进行编译检查,而与Interface一起使用时要等到运行时。

0 个答案:

没有答案