标题:大侠帮忙看看结果为什么会是0,而不是传入的参数100呢?
只看楼主
hu_xuefeng
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-6-28
结帖率:0
已结贴  问题点数:20 回复次数:3 
大侠帮忙看看结果为什么会是0,而不是传入的参数100呢?
abstract class Demo{
         public Demo(){
                 this.print();
         }        
        public abstract void print();
 };
 
class DemoImpt extends Demo{        
        private int x = 10;        
           public DemoImpt(int x){
                    this.x = x;
            }
            public void print(){
                    System.out.println("x=" + this.x );
            }
 }
 
public class CaseDemo{
         public static void  main(String args[]){
                 new DemoImpt(100);
         }
 }
 
搜索更多相关主题的帖子: abstract private public 
2013-06-28 00:11
windergao
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:57
注 册:2013-6-13
得分:7 
代码执行的先后顺序问题。赋值操作在构造代码块打印语句之后。
2013-06-28 01:24
lptnyy
Rank: 2
等 级:论坛游民
帖 子:35
专家分:42
注 册:2011-6-6
得分:7 
集成父类  实例化子类的时候 会先执行父类的构造方法
2013-06-28 14:17
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:7 
public class CaseDemo{
         public static void  main(String args[]){
                 new DemoImpt(100);
                //在此实例化了子类,jvm会先调用Demo(父类)的构造方法public Demo(){this.print();}
                 构造方法中有print()方法,此print()方法又被子类重写了,所以覆盖了父类的print()方法,调用子类的print(),自此x的值是空的。又因为int没有赋值时是默认值为0,所以打印0;
         }
}

学海无涯#¥%……&*(
2013-07-05 16:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-416251-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.220068 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved