java中static方法的繼承性


首先需要知道的是,java中所有的public實例方法都默認是virtual的,static方法不是virtual的,所以static方法可以被覆蓋(new),但不可被重寫(override)

1.被繼承

父類:

public class Parents{
    public static void staticFunction(){
        System.out.println("public static function of parents");
    }
    public void callPrintName(){
        this.printName();
    }    
}

子類:

 

1 public class Child extends Parents{
2     public static void main(String[] args){
3         Child child=new Child();
4         child.staticFunction();
5     }
6     
7 }

輸出

public static function of parents

說明static方法可以被繼承

 

2.被覆蓋(new)

父類:

public class Parents{
    public static void staticFunction(){
        System.out.println("public static function of parents");
    }
    public void callPrintName(){
        this.printName();
    }    
}

子類:

public class Child extends Parents{
    public static void staticFunction(){
        System.out.println("public static function of Child");
    }
    public static void main(String[] args){
        Child child=new Child();
        child.staticFunction();
    }
    
}

 

輸出:

public static function of Child

上面輸出是public static function of Child,說明static已經被覆蓋(new)了

3.不是virtual,即不能實重寫(override)

//父類
public class Parents{
    private void printName(){
        System.out.println("private function of parents");
    }
    public static void staticFunction(){
        System.out.println("public static function of parents");
    }
    public void callPrintName(){
        this.printName();
    }    
}





//子類
public class Child extends Parents{
    public static void staticFunction(){
        System.out.println("public static function of Child");
    }
    public static void main(String[] args){
        Parents child=new Child();
        child.staticFunction();
    }
    
}

輸出:

public static function of parents

 上面的child是屬於Child實例,用Parents引用,輸出的是public static function of parents,說明static方法不是virtual的,不能被重寫(override)。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM