package oop1;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();
}
}
package oop2;
class X {
void N(){
System.out.println("N");
}
Y b = new Y();
X() {
System.out.print("X");
}
}class Y {
void M(){
System.out.println("M");
}
Y() {
System.out.print("Y");
}
}public class Z extends X {
void K(){
System.out.println("K");
}
Y y = new Y();
Z() {
System.out.print("Z");
} public static void main(String[] args) {
new Z();
}
}
上述两个小栗子的输出结果都是:YXYZ 请问这是为什么?
麻烦详细说明下,这一块不太懂,忘大神赐教,本菜鸟不胜感激。
我的理解:
第一段代码我能看懂,看到结果后,秒懂为什么了。可以不需要多解释。
关键是第二段,我加了N,M,K进去为什么没输出来。是因为在new对象的时候,只执行需要new的那一段代码吗?
不是从上到下依次执行吗?
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();
}
}
package oop2;
class X {
void N(){
System.out.println("N");
}
Y b = new Y();
X() {
System.out.print("X");
}
}class Y {
void M(){
System.out.println("M");
}
Y() {
System.out.print("Y");
}
}public class Z extends X {
void K(){
System.out.println("K");
}
Y y = new Y();
Z() {
System.out.print("Z");
} public static void main(String[] args) {
new Z();
}
}
上述两个小栗子的输出结果都是:YXYZ 请问这是为什么?
麻烦详细说明下,这一块不太懂,忘大神赐教,本菜鸟不胜感激。
我的理解:
第一段代码我能看懂,看到结果后,秒懂为什么了。可以不需要多解释。
关键是第二段,我加了N,M,K进去为什么没输出来。是因为在new对象的时候,只执行需要new的那一段代码吗?
不是从上到下依次执行吗?
解决方案 »
- 利用jdbc在mysql中批量创建表,为何只能创建成功第一张表?
- CLASSPATH的设置问题
- 类加载和类对象的创建有什么区别啊,分别做了些什么事情呢
- JAVA 里用schema验证xml报错什么原因啊????????????
- 一个特别奇怪的问题,大侠答疑
- 谁能告诉我那里有JXL包下载?
- 建立一个Session与URL进行绑定
- Exception in thread "main" java.lang.NoSuchMethodError: main别用老眼光看这个问题!1
- 求 forte的注册码或注册机
- 谁有JDK1.3或者1.4的API文档要中文的!
- Java多线程问题
- Java内置数据结构中为啥没有图???
然后就输出了YX 接下来 才是真正的Z对象的创建,也就是先执行变量Y(Y对象的创建)最后执行Z()构造方法。
输出了YXYZ第二个呢 你没理解到 那是因为你第一个就理解错误了。
创建对象的时候会默认的执行构造方法也就是类名对应的那个方法。然而你自己定义的那个方法是不会执行的,除非你自己去调用。所以你第二个定义的NM方法根本不会去执行因为你没有通过指定对象去调用它们。比如你调用Z对象中的K()方法,那么就是new Z().k()去调用
写的比较繁琐,不懂的话再问或再看看书