日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

是否可以在最终课程中使用抽象方法?

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 是否可以在最终课程中使用抽象方法? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是最近在Java開發人員工作面試的電話面試中向我的一位讀者提出的有趣的Java核心問題之一。 即使他知道你
無法用Java將抽象類定型為final ,他對方法的措辭感到困惑。 答案很簡單,不,在Java的最終類中不可能有抽象方法。 為什么? 因為一旦在Java類中聲明抽象方法,該類便自動變為抽象類,并且您無法像前面所討論的那樣在Java中將抽象類定為final ,因此,在Java的final類中不可能有抽象方法。

正如我說的那樣,許多Java程序員對這個問題的措辭感到困惑,就像我說的那樣,即使是被問到這個問題的讀者也很熟悉這個概念,他并沒有意識到,只要您在其中聲明了抽象方法,就可以了。一個類,它將成為一個抽象類,并且不可能在Java中將抽象類定型為final。

這是一條丟失的信息,或者您稱其為把它與更流行和常見的問題分開的把戲,是否可以在Java中聲明一個抽象類和最終類 ?

讓我們看一個代碼示例,以證明這一點:您不能在最終類中聲明抽象方法。 我們有一個名為Hello的公共最終類,該類中有一個名為print()的抽象方法。
Hello.java文件。

public final class Hello {public abstract print();}

在Eclipse IDE中鍵入該命令后,將立即收到以下錯誤消息:

Hello類型必須是抽象類才能定義抽象方法

這是另一個屏幕快照,顯示您在Java的最終類中無法使用抽象方法:

當您在記事本中寫下該代碼并從命令行窗口使用javac對其進行編譯時 ,情況也是如此。 根據Java規范,一旦在類中聲明了抽象方法,該方法便自動成為抽象類,并且由于無法在Java中將抽象類定型為最終類,因此編譯器將引發錯誤。

Java中的頂級類或嵌套類均是如此。 即使在嵌套的最終類上聲明抽象方法 ,您也會收到相同的錯誤。

關于此主題的另一個后續問題是,抽象類可以在Java中具有靜態方法嗎? 答案是肯定的,在Java中的抽象類中聲明靜態方法沒有問題,因為您無需實例化類即可使用靜態方法,只需使用類名即可調用它們。

我們可以修改代碼示例以在main類中包括main()方法 ,該類是Java中的靜態方法,如下所示:

public abstract class Hello {public abstract void print();public static void main(String args[]) {.. some code here}}

您可以看到沒有編譯時錯誤。 代碼可以很好地編譯,因此在Java 抽象類中聲明靜態方法是完全可以的。

那就是關于是否可以在最終類中使用抽象方法的全部內容? 就像我說的那樣,這是不可能的,因為一旦您在類內部創建了抽象方法,按照Java規范,該類就會自動成為抽象類。 由于您無法使用Java將最終類抽象化,因此這是非法的,編譯器會通過拋出錯誤來禁止這樣做。 但是,是的,您可以在最終類和抽象類上都聲明靜態方法,這沒有問題。 如果您正在學習Java,建議您進一步閱讀
不耐煩的Core Java讓您熟悉諸如抽象和最終類之類的核心概念。 它還涵蓋了Java 8。

其他相關Java面試問題的練習

  • 抽象類可以在Java中具有構造函數嗎? ( 回答 )
  • 您可以在Java中覆蓋靜態方法嗎? ( 回答 )
  • 您可以重載Java中的靜態方法嗎? ( 回答 )
  • 您可以在Java中運行沒有main()方法的程序嗎? ( 回答 )
  • 您可以覆蓋Java中的私有方法嗎? ( 回答 )
  • 您可以重載和覆蓋Java中的main()方法嗎? ( 回答 )
  • 您可以在Java中使數組易變嗎? ( 回答 )
  • 您可以在Java中聲明一個靜態類嗎? ( 回答 )
  • 進一步閱讀

    Java編程面試公開

    Head First Java第二版

    感謝您閱讀本文,如果您喜歡這個核心Java面試問題和我的解釋,請與您的朋友和同事分享。

    翻譯自: https://www.javacodegeeks.com/2017/07/possible-abstract-method-final-class.html

    總結

    以上是生活随笔為你收集整理的是否可以在最终课程中使用抽象方法?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。