-
静态方法的调用:
- 静态方法是与类本身相关的,而不是与具体的对象实例相关。
- 当调用子类的play方法时,首先会查找子类自身是否有定义静态方法,如果有,则执行子类的静态方法。
- 如果子类没有定义静态方法,则会向上查找父类,执行父类的静态方法。
-
构造方法的调用:
- 当创建子类对象时,会先调用父类的无参构造方法,然后再调用子类的无参构造方法。
- 这是因为子类的构造方法会隐式地调用父类的无参构造方法。
-
实例方法的调用:
- 当调用子类的play方法时,首先会查找子类自身是否有定义该方法,如果有,则执行子类的play方法。
- 如果子类没有定义play方法,则会向上查找父类,执行父类的play方法。
总的来说,执行顺序如下:
- 子类静态方法
- 父类静态方法
- 父类无参构造方法
- 子类无参构造方法
- 子类play方法 (如果子类定义了play方法)
- 父类play方法 (如果子类没有定义play方法)
其中,静态方法的调用和实例方法的调用是有区别的,静态方法是与类本身相关的,而实例方法是与具体的对象实例相关的。
近日总结:难受ing。。。