java中的加载顺序以及父类与子类的构造方法
2014-12-31 15:53
323 查看
public class fatt { public static void main(String[] args) { animal a=new cat(9); } } class animal{ static int qq=7; static { System.out.println("父类静态"); } { System.out.println("父类非静态"); } int b=6; public animal(int a) {System.out.println("父类构造"); // TODO Auto-generated constructor stub } public animal() {System.out.println("调用了父类的无参构造方法"); // TODO Auto-generated constructor stub } static void play(){ System.out.println("父类静态way"); } { System.out.println("父类非静态"); }{ System.out.println("父类非静态"); } } class cat extends animal{ int c=8; static { System.out.println("子类静态"); } { System.out.println("子类非静态"); } public cat(int a) { System.out.println("子类的构造"); // TODO Auto-generated constructor stub } public cat() { // TODO Auto-generated constructor stub } { int a; System.out.println("子类非静态"); } }
类会先加载父类的静态代码----->子类的静态代码----->父类的非静态代码------>父类的构造函数--------->子类的非静态代码---------->子类的构造函数
假如父类中你没有定义构造方法,它会默认一个无参的构造方法,但是假如你在父类中定义了一个有参的构造方法后,也必须去定义一个无参的构造方法。因为在子类中实例化的时候调用了父类的无参构造方法,但是在父类中却没有这个无参的构造方法。子类不手动调父类有参构造,会自动调用父类无参构造。
相关文章推荐
- Java中静态代码块,非静态代码块,以及父类与子类的构造方法的之间调用顺序
- 子类继承父类中的static模块、构造方法执行顺序及java多态性
- java父类子类静态块、块、构造方法的执行顺序
- 坑【2】父类子类以及静态块,方法中的加载顺序
- java中父类的静态代码块,非静态代码块,构造方法,子类的静态代码块,构造方法等先后执行顺序
- java中实例变量、类变量以及构造方法的加载顺序
- Java继承中父类子类构造方法、静态代码块、非静态代码块的执行顺序
- Java子类继承父类,构造方法的执行顺序问题
- 【JAVA】探究JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- java父类子类中静态块非静态块构造方法的执行顺序和继承
- JAVA中静态代码块、构造方法、Super()父类与子类之间执行顺序
- 关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:
- java中 静态成员、实例成员、构造方法在子类和父类中的执行顺序
- Java---类加载机制,构造方法,静态变量,(静态)代码块,父类,变量加载顺序
- Java中子类、父类、变量、static方法的加载顺序
- Java---类加载机制,构造方法,静态变量,(静态)代码块,父类,变量加载顺序
- JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- java 字父类 构造方法 代码块 加载顺序
- 子类继承父类(父类和子类里:块、静态块、构造和方法覆写)之间调用顺序
- Java中子类与父类的构造方法的调用关系