| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 659 人关注过本帖
标题:再请教大家一个小问题,我就是不懂啊,唉!
只看楼主 加入收藏
songdeguang
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-4-5
收藏
 问题点数:0 回复次数:10 
再请教大家一个小问题,我就是不懂啊,唉!
import java.io.*;
  class SuperClass{
    int x;
    SuperClass( ) {
     x=3;
     System.out.println("in SuperClass : x=" +x);
    }
     void doSomething( ) {
     System.out.println("in SuperClass.doSomething()");
    }
  }
  class SubClass extends SuperClass {
    int x;
    SubClass( ) {
     super( );    //调用父类的构造方法
     x=5;      //super( ) 要放在方法中的第一句
     System.out.println("in SubClass :x="+x);
    }
     void doSomething( ) {
     super.doSomething( ); //调用父类的方法
     System.out.println("in SubClass.doSomething()");
     System.out.println("super.x="+super.x+" sub.x="+x);
    }
  }
  public class Inheritance {
     public static void main(String args[]) {
     SubClass subC=new SubClass();
     subC.doSomething();
    }
  }
他的运行结果是:
in SuperClass: x=3
in SubClass: x=5
in SuperClass.doSomething()
in SubClass.doSomething()
super.x=3 sub.x=5

但按我的理解应该是:
in SuperClass: x=3
in SuperClass.doSomething()
in SubClass: x=5
in SubClass.doSomething()
super.x=3 sub.x=5
我对这个提的哪地方没理解?主类吗?那调用的顺序又是什么?请指教!我小小菜鸟
搜索更多相关主题的帖子: import super color 
2006-04-11 15:30
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
调用顺序:
父类静态变量和静态块,子类静态变量和静态块,父类成员变量,子类成员变量,父类构造函数,子类构造函数,这样就构造完了

可惜不是你,陪我到最后
2006-04-11 15:49
songdeguang
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-4-5
收藏
得分:0 

啊???!!!不明白啊  具体哪一句?顺序


STUDY AND STUDY—JAVA
2006-04-11 15:55
164726003
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2005-7-12
收藏
得分:0 

他说的是初始化顺序,


坚持!!!
2006-04-11 15:57
164726003
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2005-7-12
收藏
得分:0 

他说的是初始化顺序,


坚持!!!
2006-04-11 15:59
songdeguang
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-4-5
收藏
得分:0 
不明白啊,我想知道程序里的具体顺序(从哪句到哪句)

STUDY AND STUDY—JAVA
2006-04-11 16:18
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
他的运行结果是:
in SuperClass: x=3
in SubClass: x=5
in SuperClass.doSomething()
in SubClass.doSomething()
super.x=3 sub.x=5
就这顺序

可惜不是你,陪我到最后
2006-04-11 16:28
songdeguang
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-4-5
收藏
得分:0 

···········


STUDY AND STUDY—JAVA
2006-04-11 16:47
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
用上面我写的初始化顺序套不就知道哪一句先哪一句了吗

可惜不是你,陪我到最后
2006-04-11 19:01
晓狐狸
Rank: 2
等 级:新手上路
威 望:3
帖 子:95
专家分:0
注 册:2006-4-6
收藏
得分:0 
import java.io.*;
class SuperClass
{
int x;
SuperClass()
{
x=3;
System.out.println("in SuperClass : x=" +x);//5 句
}
void doSomething()
{
System.out.println("in SuperClass.doSomething()");//10 句
}
}
class SubClass extends SuperClass
{
int x;//3 句
SubClass()//2 句
{
super();//调用父类的构造方法 //4 句
x=5;//super( ) 要放在方法中的第一句//6 句
System.out.println("in SubClass :x="+x);//7 句
}
public void doSomething()
{
super.doSomething();//调用父类的方法//9 句
System.out.println("in SubClass.doSomething()");//11 句
System.out.println("super.x="+super.x+" sub.x="+x);//12 句
}
}
class Inheritance
{
public static void main(String args[])
{
SubClass subC = new SubClass();//1 句
subC.doSomething();//8 句
}
}

2006-04-11 20:13
快速回复:再请教大家一个小问题,我就是不懂啊,唉!
数据加载中...
 
   



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

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