为了账号安全,请及时绑定邮箱和手机立即绑定

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

测试类
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;

}

}


正在回答

3 回答


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

1 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

哥们,你试试:

b类

package imooc.com;

public class BB extends AA {

public double Nn(){

double s=0;

s=a+b;

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

return s;

}

}


2 回复 有任何疑惑可以回复我~
#1

慕仰8542461

他输出为零 是为什么呀?
2018-08-21 回复 有任何疑惑可以回复我~
#2

慕仰8542461

会不会是因为他子类重写的方法是没有设置参数的,所以 a b 都是默认的0,导致自己通过调用属性设置的值传不进去.
2018-08-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信