1、抽象類和接口的區別。
2、final和abstract關鍵字的作用。
3、面向對象的特徵有哪些方面。
4、訪問修飾符public,private,protected,以及不寫(默認)時的區別。
5、String 是最基本的數據類型嗎?
6、8種基本數據類型有哪些?
7、float f=3.4;是否正確?不正確的話,如何更正?
8、java對標識符命名有什麼規定?
9、方法的重載和方法的覆蓋有什麼不同?
10、簡述在類的繼承關係中,子類可以繼承父類的哪些成員,不能繼承的有哪些成員?
1、從本質上講,接口是一種特殊的抽象類,然而它們又有區別:
①接口只包含常量,而抽象類則不一定。
②接口中不能有非抽象的方法,但抽象類中可以有。
③一個類能實現多個接口,但只能有一個父類。
④接口並不屬於繼承結構,它實際與繼承無關,無關的類可以實現同一個接口。
---------------------------------------------------------------------------------------------------------------------------------------
2、final關鍵字
final(最終)是一個修飾符
1.final可以修飾類,函數,變量(成員變量,局部變量)
2.被final修飾後的類不可以被其他類繼承
3.被final修飾後的函數不可以被重寫
4.被final修飾後的變量不允許被再次賦值,final在對變量進行修飾時一定賦值,
被public final static多個修飾符修飾的的變量我們稱它為常量
注意:常量的命名規範:字母全部要大寫,
如果這個名字是由多個單詞組成,在單詞之間用——隔開
abstract關鍵字
abstract:是一個修飾符
可以修飾方法,類
當我們多個類存在相同的功能,但是功能的主體不同,這時我
進行向上抽取只抽取功能的定義不抽取功能的主體
抽象類的特點:
1.抽象方法一定要在抽象類中
2.抽象類和抽象方法必須要被abstract關鍵字修飾
3.抽象的類是不能被創建對象,因為調用抽象的方法沒意義
4.抽象類的中方法要被使用,必須由子類重寫抽象類中的方法。
然後創建子類對象來調用
5.抽象類中可以定義非抽象的方法,有時我們需要此類不能被new關鍵
字創建對象時,可以用abstract將此類變成抽象類。
6.子類如果只重寫一部分的抽象類方法,那麼該子類還是一個抽象類,
如果抽象類的方法要被使用,子類必須重寫抽象類中的所有方法。
值得注意:抽象類和普通的類沒有太大的不同。
1.抽象類無法通過new關鍵字創建對象
2.抽象類裡面可有抽象的方法
------------------------------------------------------------------------------------------------------------------------------------------
3、JAVA面向對象最重要的特徵就是:封裝,繼承,多態。
封裝是為了方便調用類庫裡面已經寫好的函數,繼承是方便對已有函數的功能進行直接調用和擴展。按照原則,java中已經寫好的 類庫會被打包成jar包,不允許調用者更改裡面的代碼。
但是你可以通過其中的抽象類或者接口,根據具體的業務邏輯進行功能的擴展。
多態的作用是,可以實現對繼承對象的統一調度,是面向對象的精髓所在。
另外,java還有語言簡單,面向對象,和平臺無關性。之所以java可以跨平臺,在於他可以通過java虛擬機JVM,將java代碼解釋成 該平臺能理解的語言
---------------------------------------------------------------------------------------------------------------------------------------------
4、作用域 當前類 同包 子類 其他
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
類的成員不寫訪問修飾時默認為default。默認對於同一個包中的其他類相當於公開(public),對於不是同一個包中的其他類相當 於私有(private)。受保護(protected)對子類相當於公開,對不是同一包中的沒有父子關係的類相當於私有。
例子:應用場景
1、public:public表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用,在程序的任何其它地方訪問。
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便 是子女,朋友,都不可以使用。和public相反,加上這個修飾的屬性和方法,只允許在自己本身這個類裡訪問,程序的任何其它地 方都不能訪問 .
------------------------------------------------------------------------------------------------------------------------------------------------
5、基本數據類型包括byte、int、char、long、float、double、boolean和short。引用數據類型包括:類,數組,接口等(簡單來說就是除了 基本數據類型之外的所有類型)所以String 是引用數據類型
------------------------------------------------------------------------------------------------------------------------------------------------
6、byte、int、char、long、float、double、boolean和short
------------------------------------------------------------------------------------------------------------------------------------------------
7、不正確。精度不準確,應該用強制類型轉換,如下所示:float f=(float)3.4 或float f = 3.4f在java裡面,沒小數點的默認是int,有小 數點的默認是 double;
------------------------------------------------------------------------------------------------------------------------------------------------
8、答:Java對標識符的命名規定如下:
1) Java語言的標識符必須由字母、下劃線(「_」)或美元符號(「$」)開始,其餘字符可以是上述三種符號或數字(0-9)。
2) 關鍵字不能用於標識符如:abstract boolean 等等。
3) 標識符區分大小寫。
------------------------------------------------------------------------------------------------------------------------------------------------
9、方法重載,指的是在類中創建多個具有相同名稱,但使用不同參數的方法,Java虛擬機根據傳遞給方法的參數個數和類型決定調用哪個重 載方法。方法的覆蓋指在子類中重新定義父類中已有的方法,對於重寫的方法,運行時系統根據調用該方法的實例的類型來決定選 擇哪個方法調用。
------------------------------------------------------------------------------------------------------------------------------------------------
10、可繼承:①父類中公開級的成員;②父類中保護級的成員;③如果子類和父類在同一個包中,則子類繼承父類中預設的包訪問級的成員。
不可繼承:④父類中私有級的成員;⑤不在同一包的預設成員和父類的同名成員。