程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-這段代碼執行為什麼結果會是null

java-這段代碼執行為什麼結果會是null

編輯:編程綜合問答
這段代碼執行為什麼結果會是null

代碼:

public class Dervied extends Base {
    private String name = "dervied";
    public Dervied() {

        tellName();
        printName();
    }
    public void tellName() {
        System.out.println("Dervied tell name: " + name);
    }
    public void printName() {
        System.out.println("Dervied print name: " + name);
    }
    public static void main(String[] args){ 
        new Dervied();    
    }
}

class Base { 
    private String name = "base";
    public Base() {
        tellName();
        printName();
    } 
    public void tellName() {
        System.out.println("Base tell name: " + name);
    } 
    public void printName() {
        System.out.println("Base print name: " + name);
    }
}


執行結果

Dervied tell name: null
Dervied print name: null
Dervied tell name: dervied
Dervied print name: dervied

為什麼會是null????

最佳回答:


1、首先private是不會繼承到新的對象裡,所以不會出現“base”。
2、由於重寫的緣故,在執行super的構造函數是,還是調用的子類方法,此時成員變量未初始化。

wenyue1994
wenyue1994
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved