Java oop中提問時要能夠答出來的問答題

1.什么是對象,什么是類,什么是面向?qū)ο?/p>
現(xiàn)實世界中具體存在的事物成為對象
將現(xiàn)實世界中的具有共同特征的事物進行抽取后,將共有的特征轉(zhuǎn)化的java類
將具體存在的事物轉(zhuǎn)化為java類的過程稱為面向?qū)ο?/p>
2.面向?qū)ο蟮娜筇卣?,并簡述使用該特征解決什么樣的問題
封裝:解決了屬性安全性的問題
繼承:解決了代碼的重用性問題
多態(tài):解決了代碼擴展性的問題
3.什么是方法的重載(overload)。
在同一個類中具有多個名稱相同的方法,但是方法的參數(shù)不同,編譯器在調(diào)用的時候根據(jù)用戶傳入的參數(shù)決定使用哪個方法
4.什么是構(gòu)造方法,在什么時候執(zhí)行構(gòu)造方法,構(gòu)造方法可以重載嗎?
在類中方法名稱和類名相同,但是沒有返回值的方法
在創(chuàng)建對象的時候執(zhí)行構(gòu)造方法
可以
5.什么是方法重寫(Overwirte)
在具有繼承關(guān)系的兩個類中,方法名稱,參數(shù)和返回值類型完全相同的兩個方法構(gòu)成重寫
6.重寫和重載的區(qū)別
相同點:名稱相同
不同點:重載和參數(shù)要求不同,重寫要求參數(shù)也要完全相同
重載對于返回值類型沒有影響,重寫要求返回值類型也要完全相同,重載是在同一個類中進行,重寫要求在具有繼承關(guān)系中的兩個類中進行
7.Java中的訪問修飾符并解釋其范圍
private:同一個類中
缺省的:同一個包中
proteced:同一個包中或者具有繼承關(guān)系的兩個類中
public:任何位置
8.關(guān)鍵字final可以修飾一個類,一個方法,一個變量,各起什么作用
修飾類:該類是不可繼承
修飾方法:該方法不可重寫
修飾變量:該變量不可以再次賦值
9.什么是對象數(shù)組
使用聲明的對象組成的數(shù)組,不再是存儲的基本類型,而是引用類型
10.什么是繼承,java可以多繼承嗎?什么是多重繼承?
在已有的類中派生出新的類,新的類具有已有的類的屬性和行為,并可以具有新的特征
不可以
已有的類派生出新的類,而又有新的類繼承自派生出的類,新的類具有已有的類和派生類的特點,比如B繼承A,C繼承B,C具有A和B的兩個類的特點
11.什么是多態(tài)?靜態(tài)多態(tài)和動態(tài)多態(tài)的區(qū)別
同一個方法根據(jù)傳入內(nèi)容的不同,執(zhí)行不同的功能
靜態(tài)多態(tài)成為重載,在編譯前就可以確定執(zhí)行那個方法
動態(tài)多態(tài)需要具有繼承或接口關(guān)系,在編譯的時候確定執(zhí)行的是哪個方法
12.什么是抽象類,有哪些特點?
使用abstract聲明的類成為抽象類
特點:
1.抽象類不能夠直接使用,必須有子類繼承
2.抽象類中可以有普通方法,也可以有抽象方法
3.子類繼承抽象類后必須實現(xiàn)抽象類中的所有方法,否則該類還是一個抽象類
13.abstract class和interface有什么區(qū)別。
abstract class:聲明抽象類
interface:聲明接口
抽象類用于繼承,接口用于實現(xiàn)
子類只能夠繼承一個抽象類,但可以實現(xiàn)多個接口
抽象類中可以有抽象方法和普通方法,也可以有普通屬性和抽象屬性,接口中的屬性默認(rèn)為final,方法默認(rèn)為abstract