題目
–來自《Java程序員面試寶典》
- 什麼是反射機制
- package有什麼作用
- 如何實現C語言的函數指針功能
- 面向對象和麪向過程有什麼區別
- 面向對象主要有哪些特徵
- 面向對象的開發方式有什麼優點
- 什麼是繼承
- 組合和繼承有什麼區別
- 多態的實現機制是什麼
- 重載和覆蓋有什麼區別
題目和答案
- 什麼是反射機制
答:反射是Java提供的一種可以動態的獲取運行中對象的狀態及屬性的機制。這種機制可以在程序運行時動態的獲取對象的當前的類,成員,方法,並且可以動態的創建類的對象。 - package有什麼作用
答:通過package可以將類進行一個歸類劃分,提高層次結構,使開發更方便。 - 如何實現類似C語言的函數指針功能
答:C語言可以通過指針的不同來對回調函數的參數進行自定義,而Java採用接口多種實現來實現相應功能 - 面向對象與面向過程的不同
答: - 面向對象的特徵
答:抽象,繼承,多態,封裝。(1)抽象:忽略當前主題與目標無關屬性,充分注意與目標有關的方面;(2)繼承:爲了提高類的重用性,使用一個子類對父類的方法進行重用,並可以對已有的父類進行一個完善和拓展。(3)多態是不同類的對象對同一消息作出響應。(4)封裝是將客觀事物抽象成類,每個類對自身數據的保護和權限管理。 - 面向對象的開發方式有什麼優點
答:(1)較高開發效率 ; (2)保證軟件的魯棒性; (3)可維護性 - 什麼是繼承
答:繼承就是爲了提高代碼的可重用性而設計的。子類通過繼承父類達到對父類的一些成員及方法的重用。繼承使用關鍵字 extends 實現。Java不支持多繼承。子類可以重寫父類的public,protected 方法。子類與父類有同名的變量或者方法會進行覆蓋。 - 組合和繼承
答:組合是has-a的關係,繼承是is-a的關係,比如 雞和雞毛,組合關係。雞和動物是 繼承關係。能用組合儘量使用組合關係。 - 多態的實現機制
答:(1)通過方法的重載,一個房子多可以有多個入口。(2) 覆蓋。子類同名方法對父類方法的覆蓋。爸爸的卡車和兒子的小轎車。 - 重載和覆蓋的區別
答:重載是同名方法對不同參數的不同體現,覆蓋是不同類的不同表現。重載比如這是一個車輛加工廠,將不同的車放入會進行不同的處理。而覆蓋表示爸爸的加工廠加工的是小轎車,兒子的與爸爸同名加工廠加工的是大卡車。