不用new在测试类里面父类能调用子类

maxun518 2012-04-06 07:47:34
b_Obj类继承了a_Obj

a_Obj a = null;
a = new a_Obj();
System.out.println("result = "+a.c(1, 1));

这里a怎么调用b_Obj 类里的c(x,x)方法?

不能new b_Obj
...全文
188 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
a921016 2012-04-08
  • 打赏
  • 举报
回复
LZ你想写的应该是
a_Obj a = null;
a = new b_Obj();
这样吧..
a921016 2012-04-08
  • 打赏
  • 举报
回复
父类写一个c(x,y)
让子类去重写c(x,y)
然后父类.c的时候执行的就是子类的c(x,y)方法了
zhouxy39 2012-04-08
  • 打赏
  • 举报
回复
父类不可以调用子类的方法
a921016 2012-04-08
  • 打赏
  • 举报
回复
别说我赖皮

public static void main(String[] args) {
a_Obj a = null;
try {
a = (a_Obj) Class.forName("com.test.b_Obj").newInstance();
System.out.println("result = " + a.c(1, 1));
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
maxun518 2012-04-08
  • 打赏
  • 举报
回复
a_Obj代码
public class a_Obj {
public a_Obj()
{

}

public int c(int a,int b)
{
return a+b;
}
}


b_Obj代码
public class b_Obj extends a_Obj{

public b_Obj()
{

}

public int c(int a,int b)
{
return a*b;
}
}

测试类里面代码
a_Obj a = null;
// Add 这里修改
a = new a_Obj();
// Add

System.out.println("result = "+a.c(1, 1));

a_Obj 和 b_Obj 类不能修改,测试类里面不能new b_Obj
Dolls_Man 2012-04-07
  • 打赏
  • 举报
回复
你那个根本就不是父类调用子类!
其实还是子类调用子类方法
楼主想想我的话 如果不明白 我再解释
luyue81813 2012-04-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
没有子类实例,能调用子类方法?还真没见过
只见过子类实例调用父类的方法
[/Quote]

实际上调用的还是自己的方法,只不过子类继承了父类的方法
lqjack 2012-04-07
  • 打赏
  • 举报
回复
import java.lang.reflect.Method;

import org.junit.Test;

public class Ref {

public void T(String className, String methodName, Object[] args)
throws Exception {
Class ownerClass = Class.forName(className);

Class[] argsClass = new Class[args.length];

for (int i = 0, j = args.length; i < j; i++) {
argsClass[i] = args[i].getClass();
}

Method method = ownerClass.getMethod(methodName, argsClass);

method.invoke(ownerClass.newInstance(), args);
}

@Test
public void testRe() throws Exception {
String className = "b_Obj";
String methodName = "c";
String x = null, y = null;
Object[] args = { new String("x"), new String("y") };
Ref r = new Ref();
r.T(className, methodName, args);
}
}
luyue81813 2012-04-07
  • 打赏
  • 举报
回复
没有子类实例,能调用子类方法?还真没见过
只见过子类实例调用父类的方法
zhangchanya 2012-04-07
  • 打赏
  • 举报
回复
你实例化的是父类,如何去调用子类里面的方法
maxun518 2012-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

除非你子类中这个方法是静态的。
[/Quote]
其它类都不能修改,只能修改
a_Obj a = null;
a = new a_Obj();
附近的代码
BikeyTang 2012-04-06
  • 打赏
  • 举报
回复
c(x,y)是b中特有的方法,用父类对象怎么可以调用子类中的特有方法呢?
iceworldvip 2012-04-06
  • 打赏
  • 举报
回复
除非你子类中这个方法是静态的。
冰点小爱 2012-04-06
  • 打赏
  • 举报
回复
这是题要求的还是你想出来的呀。
反正我是不知道。
龙四 2012-04-06
  • 打赏
  • 举报
回复
木有子类对象,基本没法调到子类方法

62,614

社区成员

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

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