实例化一个A的对象,A a = new A(); 通过对象来调
解决方案 »
- 问个Socket发送字节问题
- 求助Cassandra.Client client = new Cassandra.Client(proto);这句中的Cassandra.Client
- 2种事件的区别?
- 小弟初学,请教一些关于java线程的问题~~~
- TOMCAT配置数据源有段话不明白---求教
- 各位达人,java的MessageDigest能怎么使用md5算法中的salt参数呢?(在线等....100分)
- java thread问题的不解
- 请教联通手机短信问题(关于节点编号)
- 几行小代码(没书看,没注释不懂)请教le
- 请教*.jar是什么文件?
- 求教个问题 求高手解答 谢谢
- java根据比例生成随机数
class C extends B {
void disp() {
try {
Class<?> clazz = getClass().getSuperclass().getSuperclass();
clazz.getDeclaredMethod("disp")
.invoke(clazz.newInstance());
} catch (IllegalAccessException | IllegalArgumentException
| InvocationTargetException | NoSuchMethodException
| SecurityException | InstantiationException e) {
e.printStackTrace();
}
}
}
楼主学习进步!
void disp(){
A a = new A();
a.disp();
}
}
void println(String str) {
System.out.println(str);
}
void disp() {
println("A");
}
}class B extends A {
void superDisp() {
super.disp();
}
void disp() {
println("B");
}
}class C extends B {
@SuppressWarnings("unused")
public static void main(String[] args) {
C c=new C();
c.disp();
}
void disp() {
super.superDisp();
}
}
不过想的有点多。
另外这是叫重写,不是叫重载,这点还是要区分清楚的,java面试经常被问到。
B类其实没有用到disp()这个方法,所以实际中是不应该被重写的
如果B类不重写disp()的话,那么C中super.disp();调用的就是A类的。。
恕在下直言,2楼也是创建的新对象,clazz.newInstance().