Java中面向對象的封裝,繼承,重載重寫

Java中面向對象的封裝,繼承,重載重寫

封裝的定義

    封裝從字面意思理解就是包裝,專業說法就是隱藏信息,是指將數組和對數據的操作封裝在一起,儘可能的隱藏細節,只保留對外的通道使之與外部發生關聯。也就是說,用戶是無法知道對象內部的細節,但是可以通過該對象對外提供的訪問通道來訪問該對象。

封裝的特點

把類的屬性隱藏,提供公共方法對其訪問

提高了代碼的複用性

提高了代碼的安全性

 

示例:銀行存錢

 

 

 

 

繼承

繼承的定義

Java中使用extends關鍵字實現類的加載機制稱之爲繼承,子類自動擁有了基類(也叫父類,superclass)的所有非私有成員,即成員變量和成員方法

繼承的好處

引入繼承可以減少重複的代碼量,提高代碼和開發的效率

 

繼承需注意的點

如果父類中的變量是private私有變量,那麼子類中就不可以調用父類中的變量,只能在父類的方法中調用,子類和其他類都不可以。

Java只支持單繼承,不支持多繼承,即:一個子類只有一個父類(基類)。

子類對象包含父類對象

靜態方法是不可以繼承的

 

示例:自行車和公路賽

自行車類

public classBike {

 

   public int wheels= 2; //輪子數量

  

   public voidrun(){

      System.out.println("自行車都能跑");

   }

}

變速自行車類

public classRaceBike extends Bike {

 

   public int gear= 2; // 齒輪個數

 

   public voidspeedUp() {

      System.out.println("變速自行車可以加速");

   }

 

   public voidspeedDown() {

      System.out.println("變速自行車可以減速");

   }

}

測試類

public classTest {

 

   public static voidmain(String[] args) {

      RaceBike bike= new RaceBike();

      int wheels= bike.wheels;//獲取父類的成員變量wheels

      int gears= bike.gear;

      System.out.println("變速車的輪子數量是:"+ wheels);

      System.out.println("變速車的齒輪數是:"gears);

      bike.run(); //調用父類的跑的方法

      bike.speedUp();

      bike.speedDown();

   }

}

 

重載

重載的定義

方法的重載是指同一個類裏同一個方法不同參數,在測試類裏通過調用同方法,給予不同的參數,方法的重載即:同名不同參

其中參數不同指的是參數類型或者是參數個數不同,

構造方法也可以重載

示例:

public classStudent {

 

   public voidintro(String name) {

      System.out.println("我叫"+ name);

   }

 

   public voidintro(int age){

      System.out.println("我今年"+ age + "");

   }

 

   public voidintro(String name, int age){

      System.out.println("我叫"+ name + "今年"+ age + "");

   }

}

 

 

重寫

方法重寫的定義

方法重寫是基於繼承,子類繼承父類,子類可以調用父類的方法,同時子類也可以重寫父類的方法,實現與父類不同的業務邏輯。子類與父類的方法,相同方法名,相同的參數類型,相同的參數。這樣調用子類的方法時,父類的方法就會被覆蓋。即:同名又同參

 

 

示例:動物會叫,叫聲各不相同

動物類

public classAnimal {

 

   public voidspeek(){

      System.out.println("動物都會叫");

   }

}

狗類,繼承自動物類

classDog extends Animal {

  

   /**

    * 重寫父類的speek方法

    */

   @Override

   public voidspeek() {

      System.out.println("旺旺旺...");

   }

}

貓類,繼承自動物類

classCat extends Animal {

  

   /**

    * 重寫父類的speek方法

    */

   @Override

   public voidspeek() {

      System.out.println("喵喵喵...");

   }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章