java初学者对于集成的一个困惑

clearbaoli 2017-08-19 12:15:08
自学java集成这一部分,我这人爱较真儿,有个很初级很低级的问题怎么也搞不明白,高手大大们帮忙看看吧,好人一生平安!
package com.liang.javatset01;

public class tst02 {

public static void main(String[] args) {
// TODO Auto-generated method stub
def d1 = new def();
d1.a = 10;
d1.b = 20;
d1.c = 30;
System.out.println(d1.gh());
System.out.println(d1.e);

}

}
class abc {

int a, b,c;
}

class def extends abc {
int e = a+b+c;
public int gh(){

int d = a + b +c;
return d;

}
}
question:为什么调用子类方法gh()就能得到正确结果,而直接打印d1.e确是一个0呢???我是不是漏掉了哪里的基础知识?我所看的书是《java8官方教程第九版》!感谢各位大大的回答!
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
clearbaoli 2017-08-19
  • 打赏
  • 举报
回复
哦,是JAVA继承,错别字!
clearbaoli 2017-08-19
  • 打赏
  • 举报
回复
引用 2 楼 pany1209 的回复:
int e = a+b+c;这个语句在def d1 = new def();的时候已经执行了。。那个时候还没开始为属性a,b,c赋值。。。所以e=0 可以把e的赋值e=a+b+c;放在方法里面。。。
谢谢,您一说我就明白了,哈哈,我太笨了!
asd2352000925 2017-08-19
  • 打赏
  • 举报
回复
楼上正解(e已经在你创建对象的时候生成了,int类型你不给初始值会默认为0)
李德胜1995 2017-08-19
  • 打赏
  • 举报
回复
int e = a+b+c;这个语句在def d1 = new def();的时候已经执行了。。那个时候还没开始为属性a,b,c赋值。。。所以e=0 可以把e的赋值e=a+b+c;放在方法里面。。。

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧