谁能讲解一下这个简单的题目,初学者
package thinking_in_java;
class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
输出结果为:YXYZ
请详细的讲讲输出顺序及为何,谢谢
问题点数:20、回复次数:7Top
1 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-07 14:32:17 得分 5
我来给你讲讲:
首先:Z是X的子类,所以new Z();肯定要先初始化X的子对象 所以输出YX
然后执行Z自己的初始化 就是YZ了
Top
2 楼Disney2002(小权)回复于 2006-03-07 14:45:52 得分 0
interface MyInterface {
}
public class MyInstanceTest implements MyInterface {
static String s;
public static void main(String args[]) {
MyInstanceTest t = new MyInstanceTest();
if (t instanceof MyInterface) {
System.out.println("I am true interface");
} else {
System.out.println("I am false interface");
}
if (s instanceof String) {
System.out.println("I am true String");
} else {
System.out.println("I am false String");
}
}
}
还有这个,instanceof 不理解!!!Top
3 楼earthwormww()回复于 2006-03-07 14:49:47 得分 5
A instanceof B :
如果对象A是类B的实例则,
返回true,否则返回false.Top
4 楼Disney2002(小权)回复于 2006-03-07 14:58:20 得分 0
那么结果:
I am true interface
I am false String
解释一下!谢谢!Top
5 楼Disney2002(小权)回复于 2006-03-07 15:06:08 得分 0
class MyThread extends Thread{
public void run(){
System.out.println("MyThread: run()");
}
public void start(){
System.out.println("MyThread: start()");
}
}
class MyRunnable implements Runnable{
public void run(){
System.out.println("MyRunnable: run()");
}
public void start(){
System.out.println("MyRunnable: start()");
}
}
public class MyTest {
public static void main(String args[]){
MyThread myThread = new MyThread();
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
myThread.start();
thread.start();
}
}
还有这个之间的继承关系!看了感觉不是太懂Top
6 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-07 15:10:09 得分 5
你这里 s还是一个null 当然不是String 啊
Top
7 楼earthwormww()回复于 2006-03-07 15:48:12 得分 5
同意interpb(曾曾胡)的判断,把s赋值后就I am true String;Top




