将 Car 类设为抽象类

Java 面向对象编程入门

Sani Yusuf

Lead Software Engineering Content Developer

解释抽象类

  • "Car" 一词此处仅为占位符
  • 仍需知道更多,例如具体是哪种车

丰田

梅赛德斯

Java 面向对象编程入门

用食物类比抽象类

  • 在餐厅不会只点"食物"
  • 您总会说明要吃哪种食物
    • 面包
    • 意面
    • 米饭

面包

意面

米饭

Java 面向对象编程入门

理解抽象类

  • 抽象类用于承载供子类继承的特性
  • 抽象类不能被实例化
  • 抽象类通常不包含代码实现
Java 面向对象编程入门

Car 抽象类


  // Car 抽象类
  abstract class Car {    
    // 抽象 drive 方法
     abstract void drive(); // No Code Implementation 

  }








Java 面向对象编程入门

抽象方法

  • 抽象方法没有实现
  • 继承的类必须实现抽象方法

   // Car 抽象类
  abstract class Car {    
    // 抽象 drive 方法
     abstract void drive(); // 无代码
                            // 实现
  }





  // Toyota 类
  class Toyota extends Car {  
     void drive(){
      // Toyota 的 drive() 实现
    }           
  }
  // Porsche 类
  class Porsche extends Car {  
     void drive(){
      // Porsche 的 drive() 实现
    }           
  }
Java 面向对象编程入门

创建具体方法

  • 具体方法是有代码实现的方法
  • 子类无需实现具体方法

  // Car 抽象类
  abstract class Car {
    private int topSpeed;

    // 具有实现的具体方法
    public getTopSpeed(){
         return this.topSpeed;
    }

    abstract void drive(); 
    // 无代码实现        
  }

Java 面向对象编程入门

Passons à la pratique !

Java 面向对象编程入门

Preparing Video For Download...