如何调用父类的父类中被覆盖的方法? C extends B,B extends AA,B,C均有方法d();在C中,super.d()可以访问B中的d()方法,如果还想在C中直接访问A中的d()方法怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不能这么干。如果你实在想这么干,那可以试试用Reflection 需要前提条件。你超类的d方法是静态的还是非静态的。举个例子。如果你的d方法在a中是这样写的class A { static String d() { return "A"; } class b extends a { static String d() { return "B"; } 现在A中的d方法是静态的。如果这样调用b时。会返回的字符是"A"如果A中的d方法不是静态的。如果这样调用b时。会返回的字符是"B".有一个原则:实例方法被覆盖,静态方法被隐藏只不过你现在的问题是多重继承。按照这个原则判断就行了 Reflection似乎也不行,呵呵,看来是没啥办法了。 恩,谢谢大家的回答,刚接触JAVA不久,并不知道这样做有悖设计原理,只是比较好奇这样的访问方式,再次感谢一下 用拦截器,修改父类的方法,第一句改为super.method();有点卑鄙! 直接访问很难搞new 吧,在 c 里面 new A to 6楼,本来我就觉得楼主的方法是不对的。所以并没有给他答案。我只是告诉他java对于继承方法覆盖是怎么处理的。按照原理判断,他自然会知道他想的方法是不可行的。 试一试名字空间引用C++里面可以这样,java里面我没有试过 菜鸟~终于写完了扫雷…请大家狠批 学到JAVA接口 如何获取网页地址的XML 文件 equals()在基本类型的包装类中的问题????????? 正则表达式问题 关于验证码问题,急 请教各位大虾.有谁知道基于jabber的开源的通讯的客户端吗? 关于取得整数的二进制问题。。谢谢各位大侠进来指导 throw 引发一个异常后,程序是怎样继续执行的呢? jvm问题? java菜鸟问题 怎样编程实现程序开机启动?
如果你实在想这么干,那可以试试用Reflection
举个例子。如果你的d方法在a中是这样写的class A {
static String d()
{
return "A";
} class b extends a
{
static String d()
{
return "B";
} 现在A中的d方法是静态的。如果这样调用b时。会返回的字符是"A"
如果A中的d方法不是静态的。如果这样调用b时。会返回的字符是"B".有一个原则:实例方法被覆盖,静态方法被隐藏只不过你现在的问题是多重继承。按照这个原则判断就行了
new 吧,在 c 里面 new A
我只是告诉他java对于继承方法覆盖是怎么处理的。按照原理判断,他自然会知道他想的方法是不可行的。
C++里面可以这样,java里面我没有试过