溫故而知信 回顧一下面向對象 -----多態 最簡單易懂版

以前覺得好難,現在回顧 忽然覺得好簡單啊 就這點東西

直接上代碼 


package cn.xzc.hrms;

public class 多態學習 {

    public static void main(String[] args) {
        //    人類是人
        People people= new People();
//    人類是動物
        Animal animal_pe = new People();
//    豬是都動物
        Animal animal_pi = new Pig();
//    豬是人類 語法錯誤 邏輯錯誤
//    人類是豬 語法錯誤 ;邏輯錯誤
//    動物是人類
//     People people2= new Animal(); 語法錯誤
//    顯然 父類對象 接收子類對象的變量的地址 是多態
        people.eat();
        animal_pe.eat();
        animal_pi.eat();
        /*1.顯然父類變量調用的方法子類重寫了 是直接調用的子類方法
        * 2.父類變量只能調用出父類方法中有的方法
        * */
        if(animal_pi instanceof Pig){
            Pig pig=(Pig) animal_pi;
            pig.sleeping();
        };
        /*
        * 3.父類非要用子類的方法那就只能強轉了(大轉小)  向下造型
        * */
        
        /*
        * 根據這個特徵顯然多態的存在的作用在於屏蔽了差異性
        * 同一個父類的變量的eat方法 由於子類地址不同,實際調用的是子類各自的特定的差異方法
        * 但是對父類而言 都是調用的eat方法,好用
        * */

    }


};
class Pig extends Animal{
  String name ="pig";
  public  void eat(){
      System.out.println("白菜");
  }
    public  void sleeping(){
        System.out.println("sleeping");
    }

};
class People extends Animal{
    String name ="people";
    public  void eat(){
        System.out.println("蛋炒飯");
    }
};

class Animal{
    String basename ="animal";
    public  void eat(){
        System.out.println("eating   ");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章