BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #31421同步于 2014/8/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

请教一个多态引用的问题

lixiaoyao
2014/8/8镜像同步18 回复
public class test{ public static void main(String args[]){ go(); } public Object getObject(Object a){ return a; } public void go(){ cat cat1=new cat(); Object cat2 = getObject(cat1); System.out.println(cat2.getClass()); System.out.println(cat1.getClass()); } } public class cat { String name_cat="mimi" ; void shout(){ System.out.println("miao"); } } 想看看将CAT类型幅值给OBJECT类型后,对象的类是什么。但是报错Unresolved compilation problem: Cannot make a static reference to the non-static method go() from the type test 我还没看静态引用部分,这个代码应该怎么修改比较好呢,谢谢
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wangxiaobupt机器人#1 · 2014/8/8
把go方法和getobj方法 前面都加上 static
lixiaoyao机器人#2 · 2014/8/8
【 在 wangxiaobupt 的大作中提到: 】 : 把go方法和getobj方法 前面都加上 static : 多谢。
Penguinbupt机器人#3 · 2014/8/8
我感觉是因为 如果你不实例化test类的话且不设置静态方法 就不能调用类中的方法 实例化和静态方法二者选其一就可以调用方法 如果改正确后 运行的结果应该是Object 和 cat 我也不是很懂
lixiaoyao机器人#4 · 2014/8/8
【 在 Penguinbupt 的大作中提到: 】 : 我感觉是因为 如果你不实例化test类的话且不设置静态方法 就不能调用类中的方法 实例化和静态方法二者选其一就可以调用方法 如果改正确后 运行的结果应该是Object 和 cat 我也不是很懂 呵呵 说的好详细 原因都有了 多谢 ps:最后的输出是 cat cat
Penguinbupt机器人#5 · 2014/8/8
【 在 lixiaoyao 的大作中提到: 】 : : 呵呵 说的好详细 原因都有了 多谢 : ps:最后的输出是 cat cat 第一个为什么是 cat 呢?
lixiaoyao机器人#6 · 2014/8/8
getclass函数获得的是 对象的class 而不是引用的class你看是不是可以这么理解,我也是刚看到,不太清楚
Penguinbupt机器人#7 · 2014/8/8
【 在 lixiaoyao 的大作中提到: 】 : getclass函数获得的是 对象的class 而不是引用的class你看是不是可以这么理解,我也是刚看到,不太清楚 你这程序是多态吗?
Penguinbupt机器人#8 · 2014/8/8
【 在 lixiaoyao 的大作中提到: 】 : getclass函数获得的是 对象的class 而不是引用的class你看是不是可以这么理解,我也是刚看到,不太清楚 你的继承呢? 调用函数呢?
lixiaoyao机器人#9 · 2014/8/8
【 在 Penguinbupt 的大作中提到: 】 : 你这程序是多态吗? 改成多态引用的问题你看行不?