1. 程式人生 > 其它 >Java instanceof&型別轉換 &static &抽象類 &內部類

Java instanceof&型別轉換 &static &抽象類 &內部類

  • instanceof:判斷兩個類之間是否存在父子關係;左邊是物件,右邊是類,當物件是右邊類或子類或父類或父類的父類建立的物件時,返回true;

 

  • 型別轉換:低轉高:不需要強制型別轉換;高轉低:型別 識別符號 = (型別)變數名;子類轉化為父類可能丟失自己本來的一些方法->Person person = student;

 

   or  

 

 

 

 

  • static關鍵字
  1. 靜態屬性:無法通過類呼叫非靜態屬性
  2. 靜態方法:非靜態方法可以直接呼叫靜態方法,靜態方法也可以直接呼叫靜態方法,但不能直接呼叫非靜態方法,需要先new一個物件,原因是static修飾的的方法和類一起載入;
  3.  程式碼塊:匿名程式碼塊:建立物件時自動建立在構造器之前;靜態程式碼塊:類一旦載入直接執行

            4.靜態匯入包:使方法不必加 "類." ,可以被直接呼叫

 

 final:被final修飾後不會有子類

 

 

  •  抽象類:提高開發效率,可擴充套件性提高;abstract可以用來修飾類或方法;抽象類的所有方法由子類必須幫助其實現,除非子類也是抽象類
  1. 抽象類無法new,只能靠子類實現,只是一個約束
  2. 抽象方法存在的類必須是抽象類
  3. 思考題:是否存在構造器;抽象類存在的意義是什麼;

exstends單繼承,Java中類無多繼承

  •  介面:介面的本質是契約,可以多繼承;定義關鍵字:interface;介面中的方法預設為public abstract,常量預設為public static final;介面都需要實現類
  • 類實現介面:類名 implements 介面(可以是多個介面,側面實現多繼承)
  • 作用:
  1. 約束
  2. 定義一些方法,不同實現方式·
  3. 介面不能例項化,因為介面中沒有構造方法
  4. implements可以實現多個介面
  5. 必須要重寫介面中的方法
  • 內部類
  1. 獲得外部類的的私有屬性或私有方法
  2. 靜態內部類無法訪問非靜態屬性
  3. 一個檔案只能有一個public類,但是可以有多個class類
  4. 區域性內部類:定義在方法中的類
  5. 匿名物件類:沒有名字初始化類,不用將例項儲存到變數中-new Apple().eat();