新人求教

克阁勃 2013-07-28 10:21:51
class A {
public void f(){
System.out.printf("AAAAAA\n");
}
}
public class equals_1 {
public static void main(String[] args) {
A aa=new A();
Object obj=new Object();
obj=aa;
obj.f();
}
}
结果是: equals_1.java:11: 找不到符号
符号: 方法 f()
位置: 类 java.lang.Object
obj.f();



class A {
public void f(){
System.out.printf("AAAAAA\n");
}
}
public class equals_1 {
public static void main(String[] args) {
A aa=new A();
Object obj=aa;
obj.f();
}
}
结果和上面一样
...全文
99 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
克阁勃 2013-07-29
  • 打赏
  • 举报
回复
哦,我明白了
克阁勃 2013-07-28
  • 打赏
  • 举报
回复
可是obj不是指向子类对象aa了么,那么它调用的也应该是aa的f()才对啊
水货大帝 2013-07-28
  • 打赏
  • 举报
回复
这个需要再向下转型: if(obj instanceof A) obj.f(); 如果只是这点用处就不要用多态了。如果不进行向下转型obj只会调用Object方法中的f()方法。但是在Object中没有这个方法。
S117 2013-07-28
  • 打赏
  • 举报
回复
Object类中当然没有f()方法啦!楼主想玩向上转型吗?子类向上转型的话,就只能调用父类中定义的方法呀!

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧