问题描述
- Java中子类实例可以调用父类方法吗 20C
- 通常情况子类覆写父类方法
如果是构造函数,直接用super()
如果是普通方法用super.method()但是如果创建了子类实例,比如A类中覆写了Object的equals()方法
A a = new A();
a怎么调用Object的equals()方法A没有显示继承其他类
解决方案
PHP类中子类调用父类方法
java中子类继承父类方法及调用规则
java中子类,父类的方法调用及属性值
解决方案二:
因为你A类中重写了equals方法了,所以你就调用不到Object的equals方法了。
但是,话说回来,Object的equals方法是最基本的,你A类要重写equals方法的话,必须也重写hashCode方法,需要保证equals相同的对象一定有相同的hashCode值。
所以,最好用Eclipse自带的重写equals方法,自动生成以保证这个约定的成立。
解决方案三:
就像你说的,可以在A类的equals方法中通过super来调用object类中的equals方法。
解决方案四:
这样并没有什么意义呀,,还是不要钻牛角尖了吧
解决方案五:
实在需要的话,你可以实例一个父类,用父类来调用重写的方法,这个方法比用反射直观些。
解决方案六:
你重写了equals方法,那你A类调用的肯定就是重写的方法了。但要是你一定要调用object里的方法,可以在把equals重载一下。
解决方案七:
既然要覆写了方法还要调用不是矛盾吗
解决方案八:
首先,覆写是什么意思你肯定知道,子类的把父类的给覆盖掉了。子类拥有的方法域是子类的方法域与父类中可见的方法域的并集,如有重复,则保留子类中的此方法。至于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; }}
解决方案九:
你直接a.equals()不就可以么,要重写就在A类里面重写equals就行了
解决方案十:
子类只能调用这个覆盖的方法 equals()
(覆盖的意思:就是将父类的覆盖掉了,子类对象调用该方法,只能是重写的覆盖方法,父类对象可以调用原来的equals())