class Animal {
public String name;
Animal(String name) {
this.name = name;
}
}class Cat extends Animal{
public String eyecolor;
Cat(String name,String eyecolor) {
super(name);
this.eyecolor = eyecolor;
}
}class Dog extends Animal{
public String furcolor;
Dog(String name,String furcolor) {
super(name);
this.furcolor = furcolor;
}
}public class TestCasting1 {
public static void main(String[] args) {
Animal a = new Animal("gaga");
Cat c = new Cat("mimi","blue");
Dog d = new Dog("wangwang","black");
a.test(a);
c.test(c); //为什么反应找不到符号?
d.test(d);
//TestCasting1.test(a);
//TestCasting1.test(c);
//TestCasting1.test(d);
}
//public static void test(Animal a) {
public void test(Animal a) {
if(a instanceof Animal) {
System.out.println(a.name);
if (a instanceof Cat) {
Cat cat = (Cat) a;
System.out.println(cat.eyecolor);
} else
if (a instanceof Dog) {
Dog dog = (Dog) a;
System.out.println(dog.furcolor);
}
}
}
}为什么编译时会报:a.test(a);
c.test(c);
d.test(d);
这三个找不到符号?
public String name;
Animal(String name) {
this.name = name;
}
}class Cat extends Animal{
public String eyecolor;
Cat(String name,String eyecolor) {
super(name);
this.eyecolor = eyecolor;
}
}class Dog extends Animal{
public String furcolor;
Dog(String name,String furcolor) {
super(name);
this.furcolor = furcolor;
}
}public class TestCasting1 {
public static void main(String[] args) {
Animal a = new Animal("gaga");
Cat c = new Cat("mimi","blue");
Dog d = new Dog("wangwang","black");
a.test(a);
c.test(c); //为什么反应找不到符号?
d.test(d);
//TestCasting1.test(a);
//TestCasting1.test(c);
//TestCasting1.test(d);
}
//public static void test(Animal a) {
public void test(Animal a) {
if(a instanceof Animal) {
System.out.println(a.name);
if (a instanceof Cat) {
Cat cat = (Cat) a;
System.out.println(cat.eyecolor);
} else
if (a instanceof Dog) {
Dog dog = (Dog) a;
System.out.println(dog.furcolor);
}
}
}
}为什么编译时会报:a.test(a);
c.test(c);
d.test(d);
这三个找不到符号?
解决方案 »
- 输出101~200的质数(请问这个if (!f)是什么意思啊?)
- 新手提问:Java Vector和ArrayList的大小有界限吗?
- paintComponent(g)方法绘制的背景图上面如何添加组件
- 今天面试题 有点迷糊???
- 关于Node的问题
- 改变了字符编码方式为什么没变化?
- 帮我看看这个配置文件有错吗?谢谢,
- 谁帮我看看这段 正则表达式
- JAVA继承的类是不是要经过编译的?
- 菜问题(请救命啊)
- JTextField读取问题 JTextField中的数字为什么getText变成"[Ljava.lang.String;@b31b77"??
- java中,用myeclipse 布局器实现计算器界面 并实现加减乘除
public static void main(String[] args) {
Animal a = new Animal("gaga");
Cat c = new Cat("mimi", "blue");
Dog d = new Dog("wangwang", "black");
TestCasting1 test = new TestCasting1();
test.test(a);
test.test(c); // 为什么反应找不到符号?
test.test(d);
// TestCasting1.test(a);
// TestCasting1.test(c);
// TestCasting1.test(d);
}
public static void main(String[] args) {
Animal a = new Animal("gaga");
Cat c = new Cat("mimi", "blue");
Dog d = new Dog("wangwang", "black");
TestCasting1 test = new TestCasting1();
test.test(a);
test.test(c);
test.test(d);
}