1. 程式人生 > >2019.3.13 Java的特性——繼承

2019.3.13 Java的特性——繼承

類比 ide object ima ani extends sys inf this

繼承

  • 面向對象編程(OOP)三大特征:繼承,封裝,多態
  • 目的:為了減少重復代碼,避免復制粘貼

  • 創建父類Animal


    public class Animal {

      private String name;    //定義name屬性
      private String kind;    //定義kind屬性
    
      private int age;       //定義age屬性
    
     public void bite(){        //創建bite方法
    
      System.out.println("咬咬咬");

    }

      public void bark(){        //創建bark方法
    
      System.out.println("叫叫叫")

    }

      @Override

    public String toString() {
    return "Animal{" +
    "name=‘" + name + ‘‘‘ +
    ", kind=‘" + kind + ‘‘‘ +
    ", age=" + age +
    ‘}‘;
    public String getName() {
    return name;
    }

      public void setName(String name) {
          this.name = name;
      }
    
      public String getKind() {
          return kind;
      }
    
      public void setKind(String kind) {
          this.kind = kind;
     }
    
      public int getAge() {
          return age;
     }
    
      public void setAge(int age) {
          this.age = age;
      }

    }

  • 創建子類Cat繼承於父類Animal


    public class Cat extends Animal{

    }

  • MainClass中使用子類Cat

    public class SecClass {
    
        public static void main(String[] args) {
        
        Cat cat = new Cat();

        cat.setName("旺財");
        cat.setAge(2);
        cat.setKind("土狗");

        System.out.println(cat);
        cat.bark();
        cat.bite();
        }
    }

  • 輸出顯示測試數據
    技術分享圖片

  • 註釋
    • 子類和父類是相對概念
    • 只有單繼承,只能繼承一個類
    • 子類可以繼承父類所有的"public"修飾的屬性和方法,"private"修飾的無法繼承
    • main中通過訪問public方法來訪問private屬性
    • 子類可以有獨特的方法和屬性,功能可以比父類更細致
    • 父類比子類範圍更大

    • Java中所有的類都最終繼承於Object類

  • 當子類Cat中想要新加方法時


    public class Cat extends Animal{
    
        public void wash(){
        
            System.out.println("洗臉");
        }
    }

  • 當子類Cat想要修改(重寫)父類方法時

    • 子類可以重寫(Alt+Insert選第三個,快捷鍵ctrl+o)
    • 測試樣例,bark()方法想要輸出"喵喵喵"

    public class Cat extends Animal{
    
      @Override
       public void bark() {

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

        }  
    }

  • 當子類Cat既想重寫父類方法,又想在父類方法的基礎上新加東西

     public class Cat extends Animal{
    
         public void bite() {
       
        super.bite();//→就是執行前面的bite"咬咬咬"

        System.out.println("貓咬人");//新添加的東西
        }
      }

  • 註釋
    • super的作用在子類中調用從父類繼承的方法
  • 測試樣例
    技術分享圖片

2019.3.13 Java的特性——繼承