z犬夜叉 2016-04-14 04:12 采纳率: 0%
浏览 6119
已结题

Java中子类实例可以调用父类方法吗

通常情况子类覆写父类方法
如果是构造函数,直接用super()
如果是普通方法用super.method()

但是如果创建了子类实例,比如A类中覆写了Object的equals()方法
A a = new A();
a怎么调用Object的equals()方法

A没有显示继承其他类

  • 写回答

10条回答 默认 最新

  • Goskalrie 2016-04-14 05:48
    关注

    首先,覆写是什么意思你肯定知道,子类的把父类的给覆盖掉了。子类拥有的方法域是子类的方法域与父类中可见的方法域的并集,如有重复,则保留子类中的此方法。至于a怎么调用Object的equals()方法,可以使用反射,相当于直接生成一个Object的实例,只不过下面的代码看似和A有什么关系,其实没什么关系:

     public class A{
        public static void main(String[] args) throws Exception{
            A a = new A();
            a.equals(args);
            Method objectEquals = A.class.getSuperclass().getDeclaredMethod("equals", Object.class);
            System.out.println(objectEquals.invoke("A", "A"));
        }
        @Override
        public boolean equals(Object obj) {
            System.out.println("A.equals");
            return false;
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料