黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2020年常見Java程序員筆試題庫

2020年常見Java程序員筆試題庫

更新時間:2020-05-07 12:55:19 來源:動力節點 瀏覽2978次

    1.Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什么意思?

    Java中的方法重載發生在同一個類里面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。

    2.Overload和Override的區別?Overloaded的方法是否可以改變返回值的類型?

    Overload是重載的意思,Override是覆蓋的意思,也就是重寫。

    重載Overload表示同一個類中可以有多個名稱相同的方法,但這些方法的參數列表各不相同(即參數個數或類型不同)。

    重寫Override表示子類中的方法可以與父類中的某個方法的名稱和參數完全相同,通過子類創建的實例對象調用這個方法時,將調用子類中的定義方法,這相當于把父類中定義的那個完全相同的方法給覆蓋了,這也是面向對象編程的多態性的一種表現。子類覆蓋父類的方法時,只能比父類拋出更少的異常,或者是拋出父類拋出的異常的子異常,因為子類可以解決父類的一些問題,不能比父類有更多的問題。子類方法的訪問權限只能比父類的更大,不能更小。如果父類的方法是private類型,那么,子類則不存在覆蓋的限制,相當于子類中增加了一個全新的方法。

    至于Overloaded的方法是否可以改變返回值的類型這個問題,要看你倒底想問什么呢?這個題目很模糊。如果幾個Overloaded的方法的參數列表不一樣,它們的返回者類型當然也可以不一樣。但我估計你想問的問題是:如果兩個方法的參數列表完全一樣,是否可以讓它們的返回值不同來實現重載Overload。這是不行的,我們可以用反證法來說明這個問題,因為我們有時候調用一個方法時也可以不定義返回結果變量,即不要關心其返回結果,例如,我們調用map.remove(key)方法時,雖然remove方法有返回值,但是我們通常都不會定義接收返回結果的變量,這時候假設該類中有兩個名稱和參數列表完全相同的方法,僅僅是返回類型不同,Java就無法確定編程者倒底是想調用哪個方法了,因為它無法通過返回結果類型來判斷。

    Override可以翻譯為覆蓋,從字面就可以知道,它是覆蓋了一個方法并且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對接口方法的實現,在接口中一般只是對方法進行了聲明,而我們在實現時,就需要實現接口聲明的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點:

  • 覆蓋的方法的標志必須要和被覆蓋的方法的標志完全匹配,才能達到覆蓋的效果;
  • 覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;
  • 覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類;
  • 被覆蓋的方法不能為private,否則在其子類中只是新定義了一個方法,并沒有對其進行覆蓋。

    Overload對我們來說可能比較熟悉,可以翻譯為重載,它是指我們可以定義一些名稱相同的方法,通過定義不同的輸入參數來區分這些方法,然后再調用時,VM就會根據不同的參數樣式,來選擇合適的方法執行。在使用重載要注意以下的幾點:

  • 在使用重載時只能通過不同的參數樣式。例如,不同的參數類型,不同的參數個數,不同的參數順序(當然,同一方法內的幾個參數類型必須不一樣,例如可以是fun(int,float),但是不能fun(int,int));
  • 不能通過訪問權限、返回類型、拋出的異常進行重載;
  • 方法的異常類型和數目不會對重載造成影響;
  • 對于繼承來說,如果某一方法在父類中是訪問權限是priavte,那么就不能在子類對其進行重載,如果定義的話,也只是定義了一個新方法,而不會達到重載的效果。

    3.Java中,什么是構造函數?什么是構造函數重載?什么是復制構造函數?

    當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java編譯器會為這個類創建一個默認的構造函數。

    Java中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。

    Java不支持像C++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java不會創建默認的復制構造函數。

    4.構造器Constructor是否可被Override?

    構造器Constructor不能被繼承,因此不能重寫Override,但可以被重載Overload。

    5.Java支持多繼承么?

    不支持,Java不支持多繼承。每個類都只能繼承一個類,但是可以實現多個接口。

    6.接口和抽象類的區別是什么?

    Java提供和支持創建抽象類和接口。它們的實現有共同點,不同點在于:

    接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。

    類可以實現很多個接口,但是只能繼承一個抽象類

    類如果要實現一個接口,它必須要實現接口聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。

    抽象類可以在不提供接口方法實現的情況下實現接口。

    Java接口中聲明的變量默認都是final的。抽象類可以包含非final的變量。

    Java接口中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。

    接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含main方法的話是可以被調用的。

    也可以參考JDK8中抽象類和接口的區別

2020年常見Java程序員筆試題庫

 以上就是動力節點java培訓機構的小編針對“2020年常見Java程序員筆試題庫”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 狂野欧美激情性xxxx | 婷婷激情狠狠综合五月 | 521a久久九九久久精品 | 天天摸天天做天天爽 | 亚洲欧美日韩精品高清 | 亚洲国产成人久久综合一 | 小明视频免费永久在线网 | 国产亚洲一区二区三区在线 | 亚洲经典千人经典日产 | 亚洲欧美视屏 | 妞干网免费在线观看 | 久草视频免费 | 99视频在线国产 | 亚洲一区2区三区4区5区 | 亚洲精品视频在线免费 | 欧美色图综合 | 成人在线免费小视频 | 香蕉视频亚洲一级 | 无遮羞肉体动漫影院免费版 | 麻豆轻量版 | 亚洲日本va中文字幕区 | 国产成人aaa在线视频免费观看 | 深夜在线观看 | 三级黄色片免费 | 欧美老妇人与禽交 | 窝窝午夜影院 | 一级片免费观看视频 | 欧美特黄特刺激a一级淫片 欧美特黄视频在线观看 | 一级毛片牲交大片 | 欧美三级不卡视频 | 日本韩国三级在线观看 | eeuss秋霞成人影院 | 午夜剧场网站 | 免费视频成人国产精品网站 | 中国黄色片视频 | 一区二区三区无码高清视频 | 99成人国产精品视频 | 日本三级免费网站 | 亚洲免费一区二区 | 五月开心综合 | 成年人免费观看的视频 |