黑马程序员技术交流社区
标题:
类的先后顺序
[打印本页]
作者:
赵国刚
时间:
2013-8-12 23:24
标题:
类的先后顺序
01.class Meal{
02. Meal() {
03. System.out.println("Meal()");
04. }
05.}
06.
07.class Bread{
08. Bread(){
09. System.out.println("Bread()");
10. }
11.}
12.
13.class Cheese{
14. Cheese() {
15. System.out.println("cheese()");
16. }
17.}
18.
19.class Lettuce{
20. Lettuce() {
21. System.out.println("Lettuce()");
22. }
23.}
24.
25.class Lunch extends Meal{
26. public Lunch() {
27. System.out.println("Lunch()");
28. }
29.}
30.
31.class PortableLunch extends Lunch{
32. public PortableLunch() {
33. System.out.println("portabkeLunch()");
34. }
35.}
36.
37.public class SandWich extends PortableLunch {
38. private Bread m =new Bread();
39. private Cheese s = new Cheese();
40. private Lettuce l = new Lettuce();
41.
42. SandWich(){
43. System.out.println("sandwich()");
44. }
45.
46. public static void main(String[] args) {
47. new SandWich();
48.
49. }
50.
51.}
52.
复制代码输出结果:
Meal()
Lunch()
portabkeLunch()
Bread()
cheese()
Lettuce()
sandwich()
为什么Bread() cheese() Lettuce() 会比sandwich() 先执行?? 感谢~~
作者:
sergio
时间:
2013-8-13 00:41
从你的例子中可以看到。按照继承的顺序,自最顶层类向下执行,执行完了。再执行你实例化对象的顺序执行自顶向下。
作者:
penpen
时间:
2013-8-13 00:43
我好像在哪本书上面见过这代码。。。
作者:
gudao20080
时间:
2013-8-13 11:08
new对象时,有继承关系的话,会先加载父类的程序,然后才是子类的程序。
作者:
EYE_SEE_YOU
时间:
2013-8-14 13:04
请看黑马程序员_毕向东_Java基础视频教程第06天-07-面向对象(对象的初始化过程).avi
黑马程序员_毕向东_Java基础视频教程第06天-08-面向对象(对象调用成员过程).avi
JVM执行顺序是加载类,static代码块,static成员,构造函数代码块,构造函数,一般成员
作者:
施大勇
时间:
2013-8-17 17:32
子类要想实例化,必须先调用父类的构造 方法,子类的构造方法中第一行都隐含一个调用父类的super()方法。子类对象要初始化属性,它从父类继承而来的属性就会在父类中初始化完毕,而在本类中因为不清楚继承了哪些属性,所以在本类中是无法初始化这些属性的, 一定要在父类中完成后才可以。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2