父子类实例化过程

来源:互联网 发布:ps10.0软件下载 编辑:程序博客网 时间:2024/05/29 15:33

一.java类实例化的顺序:

父类:static{}(无名称方法体)

子类:static{}(无名称方法体)

父类:{}(无名方法体)

父类 构造函数

子类 {}(无名方法体)

子类 构造行数

二.静态方法/变量使用的场合

1,当多个对象共享某个变量或者方法时

测试代码,输出的结果一目了然

 

class A{
    
protected static String name = "jessie";
    
static{
        System.out.println(
"static none name method of super(A) class");
    }
    {
        System.out.println(
"none name method of super(A)");
    }
    
public A(){
        System.out.println(
"constructor of super(A)");
    }
    
protected static void getName()
    {
        
        System.out.println(name);  
    }
    
    
protected static void setName(String pname)
    {
        name 
= pname;
        System.out.println(name);  
        }
}
class B extends A{
    
static{
        System.out.println(
"static none name method of sub(B) class");
    }
    
    {
        System.out.println(
"none name method of sub(B) class");
    }
    
public B(){
        System.out.println(
"constructor sub(B)");
    }   
}

class C extends B{

    
public C(){
        System.out.println(
"constructor of sub class(C)");
    }  

    
}
public class StyleTest3{
    
public static void main(String[] ars){
        A ab 
= new B(); 
        System.out.println(
"**************************");
        ab 
= new B(); 
        System.out.println(
"**************************");
        B BTest 
= new B();
        System.out.println(
"**************************");
        C CTest 
= new C();
        System.out.println(
"**************************");
        CTest.getName();
        CTest.setName(
"shirley");
        BTest.getName();
        CTest.getName();
    }

  
 
原创粉丝点击