问答详情
源自:10-1 Java 中的多态

为什么我调用了子类的方法,给子类的属性赋了值,输出的结果却只为零

测试类
package imooc.com;public class Tt {	public static void main(String[] args) {	
	// TODO Auto-generated method stub
	AA aa=new AA();
	AA n=new BB();
	n.a=1;n.b=2;
	double d=n.Nn();
	System.out.println(d);	
	}}

类1

package imooc.com;


public class AA {

public double a;

public double b;

public double Nn(){

double s=0;

return s;

}

}

类2

package imooc.com;


public class BB extends AA {


public double a;

public double b;

public double Nn(){

double s=0;

s=a+b;

return s;

}

}


提问者:绫清竹 2018-08-14 12:08

个回答

  • 呆呆喵
    2018-08-30 14:38:46
    已采纳


    我把你的代码拿来试了一下,发现你的值是赋到了父类的a和b
    所以子类的a和b的值为0,返回的值就为0

  • tdxrtxxjy
    2018-09-09 14:30:34

    继承的初始化顺序是先父类后子类,你的值赋给父类了。

  • DF10F0001A
    2018-08-14 18:52:14

    哥们,你试试:

    b类

    package imooc.com;

    public class BB extends AA {

    public double Nn(){

    double s=0;

    s=a+b;

    System.out.println(""+s);

    return s;

    }

    }