2016-02-03 42 views
-1

以下哪些類具有默認構造函數?我在想A,但我錯了嗎?以下哪些類具有默認構造函數?

class A {} 
class B {B() {}} 
class C {C(int j) {}} 
+2

你爲什麼這麼想? – SLaks

+5

[Java默認構造函數]的可能重複(http://stackoverflow.com/questions/4488716/java-default-constructor) – MWiesner

回答

2

你是對的。根據定義,缺省構造函數是在未定義構造函數時創建的。由於A沒有定義構造函數,因此會爲其創建一個默認構造函數。

從技術上講,你可以說B有一個默認的構造函數,因爲如果沒有定義沒有參數的構造函數就會創建。

參考:http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.8.9

+0

請問您可以添加對「定義」的引用,可能會有所幫助。 – MWiesner

+0

https://en.wikipedia.org/wiki/Default_constructor – Idos

+0

添加了我能在java文檔中找到的最接近的東西。 – tnw

0

精確。

A有一個默認的構造函數,因爲您沒有爲該類提供任何構造函數。因此,編譯器會自動提供一個無參數的默認構造函數。這個默認構造函數將調用超類的無參構造函數(在這種情況下是Object類)。第二類,B,提供了一個無參數的構造函數,但它不是默認的,因爲編譯器沒有爲你提供它。

相關問題