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.內部類可以引用它的包裝類的成員嗎
一個內部類對象可以訪問創建它的外部類對象的成員,包括私有成員