在java裡如果父類又構造方法,是不是子類繼承父類的時候,必須在子類中重新定義構造器

時間 2021-08-31 06:54:06

1樓:水木澤遠

首先說說為什麼會有 子類重寫 父類的構造方法: 我們知道,子類初始化之前都會首先初始化父類,靜態變數不必說了。因為例項變數是在建構函式裡面初始化的或者說是通過呼叫建構函式來初始化的。

所以我們要在子類中通過super關鍵字呼叫父類建構函式。

編譯器預設的話 在子類的構造器的第一行自動編譯上super()來呼叫父類預設的建構函式,只是我們這裡省略了,其實這是編譯器實現的,**中不用 顯式 寫出來罷了。

但是,如果你在編寫父類是自己寫了帶參建構函式但並沒有顯示的寫一個無參建構函式的話,子類中你就必須 顯式的 用super關鍵字在子類的建構函式第一行中寫上super(父類引數對應)。當父類中有多個帶參的建構函式時,你可以呼叫任意一個都是可以的,這要根據情況而定!!

最後再說一句:建構函式是用來 初始化 例項變數的!!!子類在初始化之前先初始化父類的例項變數,注意:是例項變數。

2樓:般若兮若

每一個類都預設有一個無參的構造方法.並且會預設有一句super()去呼叫父類的無參構造方法

3樓:匿名使用者

構造器本來就可以不用寫。

比如你的父類有private a,private b那麼建構函式預設為(a = null;b = null);

子類如果繼承了父類,而且有自己的private c則也是使用預設的(a = null;b = null;c = null);

但是如果父類的構造不是預設的,比如(a = "aaaa";b = 1);

那麼子類在沒有建構函式的情況下則是使用(a = "aaaa";b = 1;c = null)構造器

4樓:

這個不一定的

1.如果父類有預設構造器(構造器沒有引數),則子類隨意

2.如果父類沒有預設構造器,但是有其他的構造器(有引數),則子類必須要寫構造器

在java中為什麼要使用類圖,在java中為什麼要使用類圖

其實也不是一定要使用類圖的,使用類圖就是為了讓你清楚的理解類之間的關係,比如a類繼承了b類,同時又實現了c介面,等等這樣的關係用類圖來表示的話一目瞭然。使用類圖還有一個好處,就是在軟體工程中講的一個軟體開發的 詳細設計 階段,用類圖表示出系統的結構後好多工具支援自動生成 就是從類圖直接生成 的基本結...

請教 Eclipse裡能監控java各個類消耗記憶體的多少嗎

回家先睡覺 這個東西叫做profiler,eclipse有一個版本附帶,不過我沒有研究出來怎麼使用。我用過netbeans裡的profiler,可以列出各個類的物件的方法的執行時間和消耗記憶體,只不過檢測速度時執行速度相當的慢。 我只知道一個 在 3.1 中可以監控的外掛 你用pwd,finding...

如果我在安踏店買了一批衣服,我又拿到商場裡去賣,這樣我算不算侵權

黑得透明 一般算吧!問下律師吧!我也不懂! 天使璇律沈軍 侵權是對某個人的民事違法行為 而犯罪,則是違反國家所保障之利益之規定,對個人,社會或國家的違法行為。二者主觀過錯方面存有較大差異。侵權之過錯包括故意和過失,而且通常只需認識到自己可歸責性即可,並不需要認識到自己行為所可能帶來的實際損害。而刑法...