2017-03-31 205 views
0

你能有今天在我的測試要求真/假的問題之一幫助:Java的抽象方法不重寫

如果abstract方法由子類繼承,但沒有覆蓋整個子變得abstract。這是true還是false

+0

這是真的,如果一個類有一個抽象方法顯式地或繼承的,它必須是抽象的。 – Sanjeev

+9

這是一個寫得不好的問題。如果一個抽象方法被一個子類繼承,但沒有被覆蓋,那麼子類*必須被顯式聲明爲抽象的。它不會神奇地「變得抽象」 - 它只是在您將其聲明爲抽象之前不會編譯。 –

+0

@AndyThomas這是我回答時不明白的。如果它不是抽象的,它會是真的還是假的? –

回答

-1

如果一個抽象方法是通過一個子類繼承但沒有覆蓋 整個子類變得抽象。

答案是false因爲類不會自動或奇蹟般地成爲abstract,而您需要將其標記爲abstract如果你不重寫一個或多個abstract方法。

同樣的概念甚至interface也適用即,如果你沒有實現(覆蓋)從interface一個或多個abstract方法,那麼你需要將類標記爲abstract

所以,可以矯正你的一句話是,如果abstract方法由子類繼承,但不被覆蓋,整個子需要,就因爲它是標記爲abstract(這是true

+0

我不同意,預期的答案很可能是錯誤的,因爲整個子類必須標記爲抽象的,它不會變得抽象。這是一個寫得不好的問題,試圖欺騙考生。 –

+0

@DanielBickler我同意這篇文章寫得不好,但我認爲它比故意的詭計更可能無意地寫得很糟糕。 –

+0

@DM我希望你是對的,但是在高中和大學裏,我用T/F的問題進行了很多測試,不幸的是,這些問題被設計得很棘手,並且在回答問題時需要考慮每個單詞。在這些情況下,希望教練願意拋出這個問題,如果這是無意的棘手。假設他們的意圖不是很棘手。 –

-1

真/假並不意味着你不能附上解釋。假設你的老師知道他在做什麼並且是公平的(這可能不是一個有效的假設),那麼爲什麼你選擇了你所做的答案的明確解釋可能會有所幫助。如果測試是在線或scantron,並且您無法在測試本身的邊緣提供解釋權,請​​給他發送電子郵件。

我會選擇「真」與它實際上並不使類抽象的解釋,但它確實使必要的類抽象。如果老師在一個寫得不好的問題上尋找「真實」,那麼你就回答「真實」。如果老師在一個詭計問題上尋找「假」,那麼你已經證明你已經看到了這個訣竅。我認爲這可以最大限度地獲得貸款。

+0

除措辭正確的答案是「假」。 –

+0

@LewBloch不,正確答案是「N/A」。如果在這種情況下子類不是抽象的,那麼就沒有子類。這就是爲什麼解釋答案是關鍵。我建議「真實」,主要是因爲,國際海事組織,那種盲目地回答問題而不看解釋的講師類型是講解員的類型,他會說答案是「真實的」。那些會說答案是「假」的教師類型已經知道它的措詞不好,並且可能會接受一個解釋,表明學生知道在這種情況下會發生什麼。 –

+0

如果沒有類,那麼它是錯誤的,它是一個抽象類,它是一個非抽象類是錯誤的。正如每個程序員都知道的那樣,如果'p AND q'是真的,那麼每個子句都是單獨的。因此它是一個抽象類是錯誤的。因此答案是「錯誤的」。證明完畢 –

0

我們本週也在學習抽象類,並且作爲每週討論帖的一部分,我們必須回答Stack Overflow提出的問題,所以這是我的嘗試。

甲骨文國家:

當一個抽象類的子類是,子類通常提供實現對所有的在它的父類的抽象方法。但是,如果沒有,那麼子類也必須聲明爲抽象。

答案真/假問題,因爲由於子類方法不覆蓋,子類繼承的抽象方法,並且爲此是因爲只有抽象類可以包含抽象方法的默認抽象的情況是真實的。

如果一個類包含抽象方法,那麼該類本身必須聲明爲抽象。

因此,可以認爲整個小類「變得」也是抽象的。

+0

我很欣賞答案,但請參閱上面的評論。在與網站上更有經驗的成員以及我自己的JAVA老師討論之後,答案實際上不會是真的。如果一個抽象方法被繼承但未被覆蓋,並且該子類未被聲明爲抽象,則會發生運行時錯誤,並且程序將無法成功編譯。因此,該類不是抽象的,因爲它不能編譯。 –

相關問題