原文鏈接:http://www.zhoubotong.site/post/50.html defer語句用於延遲函數調用,每次會把一個函數壓入棧中,函數返回前再把延遲的函數取出並執行。延遲函數可以有參數: 延遲函數的參數在defer語句出現時就已確定下來(傳值的就是當前值) return先賦值(對於 ...
轉自:
http://www.java265.com/JavaCourse/202206/3757.html
下文筆者講述java抽象類的簡介說明,如下所示
java抽象類的簡介
抽象類可用於修飾類,修飾成員方法 抽象類修飾可使用abstract關鍵字 例: 修飾符 abstract class 類名{ 修飾符 abstract 返回值類型 方法名稱(形參列表) } 註意事項: 1.當一個方法被abstract修飾,則類必須使用abstract修飾 2.當一個方法被abstract修飾,不能包含方法體
例
//抽象類由abstract修飾 public abstract class User{ //抽象方法由abstract修飾,不能有代碼體 public abstract void run(); }
abstract使用場景
1.抽象類常為不完整的類設計圖 一般作為父類,讓子類來繼承 2.當父類抽象出子類行為 但是此時由於每個子類的行為不同,所以需使用抽象方法,讓具體的實現由子類完成
抽象類特點
普通類擁有的,抽象類同樣擁有 抽象類中可以沒有抽象方法,但是由抽象方法就必須有抽象類 一個類繼承了抽象類:必須重寫完抽象類的全部抽象方法,否則這個類也必須定義為抽象類。 不能用abstract修飾變數、構造器、代碼塊
抽象類實現的模板方法
例:創建抽象類,具體的實現類由子類實現
public abstract class User { public void eat(){ System.out.println("start"); this.run(); System.out.println("end"); } public abstract void run(); } //子類繼承抽象類,並對run()重寫 public class MainTest extends User { @Override public void run() { System.out.println("run"); } } //main函數 MainTest p = new MainTest(); p.eat();