一个java小程序,为什么运行不了?

2024年11月22日 11:47
有3个网友回答
网友(1):


if (a instanceof Cat)
Cat c=(Cat)a;
改为
Cat c;
if (a instanceof Cat)
c=(Cat)a;
就可以了。

其实你不用考虑那么多,在实际中不可能出现if (a instanceof Cat) Cat c=(Cat)a; 的情况。因为你这里定义的变量c在if外是用不到的,if中有没有处理,所以c没有意义。要让c有用就得把c的定义拿到if的外面;你如果想在if中处理变量c,那if中就得有其它语句,那样就得用{}括起来了。所以实际中不会出现你那样的错误。

if (a instanceof Cat) Cat c=(Cat)a; 的写法会报“not a statement”的错误。是语法错误,不是强制转换的问题。

网友(2):

不知道你要写些什么,反正没有看明白。

是不是这样的
public class TestAnimal{

public static void main(String[] args){

Animal a = new Dog();

Animal c ;

if (a instanceof Cat)
c = (Cat)a;
}
}

class Animal {

public void eat(){}
}
class Cat extends Animal {}
class Dog extends Animal {}

网友(3):

if (a instanceof Cat) Cat c=(Cat)a;
这样试试,别换行