java里变体类型如何处理?

mjc_88 2007-06-24 06:16:09
我自己定义了一个基类z,然后定义a,b两个类均继承至基类.
我在程序里需要定义了一个变量h.
变量h的类型有可能是a类,也有可能是b类.这是随机定的.在程序运行后,则确定了h的类型.请问在程序中我应该怎么定义这个变量h?
我试过用基类z来定义变量h,但是在程序运行的最后,它还是要转换成a或b类的
...全文
303 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
风吹雨碎 2011-12-30
  • 打赏
  • 举报
回复
建议你使用Java的高级特性:
1.反射
2.泛型
mjc_88 2007-06-26
  • 打赏
  • 举报
回复
谢了.楼上的
捏造的信仰 2007-06-25
  • 打赏
  • 举报
回复


z h;
h = getInstanceOfAorB();

if (h instanceof a) {
// h 是 a 类的对象
} else if (h instanceof b) {
// h 是 b 类的对象
}
mjc_88 2007-06-25
  • 打赏
  • 举报
回复
以上的问题也等同于,如何在程序运行时,在来确定一个变量的类型,而又不能让这个变量为局部类型
mjc_88 2007-06-25
  • 打赏
  • 举报
回复
楼上说的只是定义,在程序运行时,h如果是a类的话,可能要调用get()方法.如果是B类的话也同样要调用get()方法.但这两个get()方法是不一样的.

孤风无缺 2007-06-25
  • 打赏
  • 举报
回复
z h = new a();或z h = new b();

mjc_88 2007-06-24
  • 打赏
  • 举报
回复
这个我知道啊,我是想知道如何定义变量.
缘之一道 2007-06-24
  • 打赏
  • 举报
回复
java 中,方法具有多态性,父类和子类具有相同方法名的话,
子类的方法会覆盖父类的方法
属性是没有多态性的,父类和子类具有相同属性名的话,
他们之间是遮盖的(shadow),有些书描述为影子变量,
区分父类和子类相同的属性名方法:this.xxx;

62,623

社区成员

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

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