2 u012768347 u012768347 于 2016.04.14 12:12 提问

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

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

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

A没有显示继承其他类

11个回答

theSnai1
theSnai1   2016.04.14 15:31

就像你说的,可以在A类的equals方法中通过super来调用object类中的equals方法。

CSDNXIAOD
CSDNXIAOD   2016.04.14 12:22

PHP类中子类调用父类方法
java中子类继承父类方法及调用规则
java中子类,父类的方法调用及属性值
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.14 12:22

因为你A类中重写了equals方法了,所以你就调用不到Object的equals方法了。
但是,话说回来,Object的equals方法是最基本的,你A类要重写equals方法的话,必须也重写hashCode方法,需要保证equals相同的对象一定有相同的hashCode值。
所以,最好用Eclipse自带的重写equals方法,自动生成以保证这个约定的成立。

ultramanleoking
ultramanleoking   2016.04.14 15:46

这样并没有什么意义呀,,还是不要钻牛角尖了吧

HFUTJungle
HFUTJungle   2016.04.14 20:34

实在需要的话,你可以实例一个父类,用父类来调用重写的方法,这个方法比用反射直观些。

qq_34404081
qq_34404081   2016.04.14 12:22

你重写了equals方法,那你A类调用的肯定就是重写的方法了。但要是你一定要调用object里的方法,可以在把equals重载一下。

bi_ma_wen
bi_ma_wen   2016.04.14 12:23

既然要覆写了方法,还要调用,不是矛盾吗

Goskalrie
Goskalrie   2016.04.14 13: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;
    }
}
qq_15002323
qq_15002323   2016.04.14 15:02

你直接a.equals()不就可以么,要重写就在A类里面重写equals就行了

niaonao
niaonao   Rxr 2016.04.14 23:00

子类只能调用这个覆盖的方法 equals()

(覆盖的意思:就是将父类的覆盖掉了,子类对象调用该方法,只能是重写的覆盖方法,父类对象可以调用原来的equals())

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java 中父类怎么调用子类的方法?
Java中父类可以调用子类方法吗?
Java 子类方法的父类方法相互调用
class A{ public void fun1(){ System.out.println("a:fun1"); this.fun2(); } /** * a:fun1 * a:fun2 */ private void fun2(){ System.out.println("a:fun2"
关于Java中子类调用父类方法
当一个类继承于另一个类,子类中没有父类的方法时。用子类的对象调用方法时,会首先在子类中查找,如果子类中没有改方法,再到父类中查找。 当一个方法只在父类中定义时,调用该方法时会使用父类中的属性。 如果该方法中又调用了其他方法,那么还是按照之前的顺序,先在子类中查找,再在父类中查找。 package Temp;class A { int x = 6; private int y
【java】Java 中父类怎么调用子类的方法?
原文地址:http://blog.csdn.net/qq_25827845/article/details/52916513 父类能调用子类的方法吗? 答:能。   怎么做? ● 把子类传递到父类的有参构造中,然后调用。 ● 使用反射的方式调用,你使用了反射还有谁不能调用的?! ● 父类调用子类的静态方法。 package study; /** * Cr
Java学习笔记——子类调用父类属性方法
父类引用指向子类对象: 父类对象: public class Father { public void dance(){ System.out.println("我们爱跳交谊舞!"); } } 子类对象: public class Son extends Father{ public void dance(){ System.out.pri
子类的对象调用父类的方法
class Fruit { String color = "未确定颜色"; //定义一个方法,该方法返回调用该方法的实例 public Fruit getThis() { return this; } public void info() { System.out.println("Fruit方法"); } } public class Apple extends Fru
Java父类调用被子类重写的方法
父类: public class Father { public void doing(){ talking(); } public void talking(){ System.out.println("father is talking!"); } } 子类: public class Son extends F...
子类调用父类方法(super关键字)
package testextends; public class Pad3 extends Computer3{ //子类:平板电脑 String sayhello(){ //重写父类方法‘打招呼’ return super.sayHello()+ "ipad";//调用父类方法并添加字符串 } public static void main(Strin...
Java反射:通过父类对象调用子类方法
通常情况下在父类中不能直接调用子类中的方法(重写的除外),但是在某些特殊的情况下,需要根据一个父类的对象来调用子类的方法,原理就使用java的反射原理。例如:Person类,有一个name属性 public class Person {    private String name; ​    public String getName() {        return name;
Java子类调用父类构造方法
在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?        答案如下:         当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况.构造方法是new一个对象的时候