static和非static
package com.simple.second;class First{ public First(){ aMethod(); } public void aMethod(){ System.out.println("First"); }}public class Second extends First{ public void aMethod(){ System.out.println("second"); } public static void main(String args[]){ new Second(); }}package com.simple.second;class First{ public First(){ aMethod(); } public static void aMethod(){ System.out.println("First"); }}public class Second extends First{ public static void aMethod(){ System.out.println("second"); } public static void main(String args[]){ new Second(); }}class First{ public First(){ aMethod(); } public static void aMethod(){ System.out.println("First"); }}public class Second extends First{ public Second(){ aMethod(); } public static void aMethod(){ System.out.println("second"); } public static void main(String args[]){ new Second(); }}
[解决办法]
mark
[解决办法]
1、首先类加载器加载.class文件。2、然后完成static初始化,如果有。3、为对象分配内存空间4、将分配的内存空间清零5、初始化类字段(数据成员)。按照定义的顺序依次初始化6、调用构造器的方法开始--->父类的静态代码--->子类的静态代码-->父类的非静态代码--->父类构造函数--->子类非静态代码--->子类构造函数--->完成
[解决办法]
//静态方法,至与类名相互联系,跟哪个对象无关,不存在继承这个概念class First{ public First(){ aMethod(); }//这是父类的构造方法,调用了父类的静态方法 public static void aMethod(){ System.out.println("First"); }}public class Second extends First{ public static void aMethod(){ System.out.println("second"); }//这是子类静态方法,没有被任何方法调用 public static void main(String args[]){ new Second(); }}class First{ public First(){ aMethod(); } public void aMethod(){ System.out.println("First"); }}public class Second extends First{ public void aMethod(){ System.out.println("second"); }//并非是静态方法,发生了重写 public static void main(String args[]){ new Second(); }}
[解决办法]
//静态方法,至与类名相互联系,跟哪个对象无关,不存在继承这个概念class First{ public First(){ aMethod(); } public static void aMethod(){ System.out.println("First"); }}public class Second extends First{ //在这个地方你使用子类构造方法调用子类的静态方法,也同样会输出信息 public Second() { aMethod(); } public static void aMethod(){ System.out.println("second"); } public static void main(String args[]){ new Second(); }}
[解决办法]
很经典的案例
[解决办法]
其实我是来打酱油的哦~