Java類與對象(面試篇)

1、Java語言的優勢:

    Java是一種跨平臺,適合於分佈式計算環境的面向對象的編程語言

    優點:簡單性、面向對象、分佈式、健壯性、安全性、體系結構中立、可移植性、解釋性、高性能、多線程、動態性

 

2、面向對象的三大特徵

    封裝、繼承、多態

    (1)封裝:把對象的屬性和行爲結合爲一個獨立的整體,並儘可能隱藏對象的內部細節,只保留有限的接口和外部發生 聯繫,使得外部不能直接訪問對象的內部屬性,保證了數據的安全性

    (2)繼承:是從已有的類中(稱爲父類)派生出來新的類(稱爲子類),新的類能夠吸收已有類的屬性和行爲,繼承的好處提高了代碼的可用性和維護性

    (3)多態:不同類對同一消息作出相應,即統一消息可以根據發送對象的不同而採取多種不同的行爲方式,多態必要條件:要有繼承、要有重寫、父類引用指向子類對象

 

3.重載與重寫:

    (1)重載和重寫都是多態的一種體現,重載是編譯期的多態性,重寫是運行期的多態性

    (2)重載發生在一個類中,有兩個或兩個以上的方法有相同的方法名,參數和方法體不同

             重寫發生在父子類中,子類要求與父類相同的返回值、參數、方法名,但訪問權限要大於父類,異常不能超過父類異常

 

4.抽象類和接口

        相同點:

    (1)都不能被實例化,能被其他類繼承(實現)

    (2)都包含抽象方法,子類都必須實現這些抽象方法

        不同點:

    (1)類:抽象類是對事物的抽象,接口是對行爲的抽象

    (2)方法:抽象類中可以包含普通方法,接口中不能有普通方法

    (3)成員:抽象類可以一樣普通成員變量,接口中不能有普通成員變量,只有靜態變量
    (4)靜態:抽象類中可以有靜態代碼塊和靜態方法,而接口不能

    (5)子類:一個類只能有一個抽象類,而可以實現多個接口

 

5.類的訪問修飾符

 

 

6.構造器能否重寫

重寫發生在父子類中,而構造器不能被繼承,所以就不能被重寫

 

7.String類能否被繼承

String是final的,不能被繼承

 

8.是否可以從一個靜態方法內部發出對非靜態方法的調用

不可以,靜態方法只能訪問靜態成員

 

9.接口是否可繼承接口,抽象是否可實現接口,抽象類是否可繼承具體類

接口可以繼承接口;抽象類可以實現接口,抽象類可以繼承具體類,但前提是具體類有明確的構造函數

 

10.內部類可以引用它的包裝類的成員嗎

一個內部類對象可以訪問創建它的外部類對象的成員,包括私有成員

 

 

 

發佈了33 篇原創文章 · 獲贊 82 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章