Делаем класс Car абстрактным

Введение в объектно-ориентированное программирование на Java

Sani Yusuf

Lead Software Engineering Content Developer

Что такое абстрактный класс

  • Car существует лишь как заглушка
  • Нужно уточнить: что за тип автомобиля

Toyota

Mercedes

Введение в объектно-ориентированное программирование на Java

Аналогия с едой для абстрактного класса

  • В ресторане не заказывают просто еду
  • Всегда уточняют, что именно
    • хлеб
    • паста
    • рис

Хлеб

Паста

Рис

Введение в объектно-ориентированное программирование на Java

Абстрактные классы: основы

  • Абстрактные классы хранят члены для классов-наследников
  • Создавать экземпляры абстрактного класса нельзя
  • Абстрактные классы, как правило, не содержат реализации
Введение в объектно-ориентированное программирование на Java

Абстрактный класс Car


  // Car abstract class
  abstract class Car {    
    // abstract drive method
     abstract void drive(); // No Code Implementation 

  }








Введение в объектно-ориентированное программирование на Java

Абстрактные методы

  • Абстрактные методы не имеют реализации
  • Класс-наследник обязан реализовать абстрактные методы

   // Car abstract class
  abstract class Car {    
    // abstract drive method
     abstract void drive(); // No Code  
                            // implementation
  }





  // Toyota class 
  class Toyota extends Car {  
     void drive(){
      // Toyota drive() implementation
    }           
  }
  // Porsche class
  class Porsche extends Car {  
     void drive(){
      // Porsche drive() implementation
    }           
  }
Введение в объектно-ориентированное программирование на Java

Создание конкретных методов

  • Конкретные методы — это методы с реализацией
  • Подклассам не нужно реализовывать конкретные методы

  // abstract Car class
  abstract class Car {
    private int topSpeed;

    // Concrete method with implementation
    public getTopSpeed(){
         return this.topSpeed;
    }

    abstract void drive(); 
    // No Code Implementation        
  }

Введение в объектно-ориентированное программирование на Java

Давайте потренируемся!

Введение в объектно-ориентированное программирование на Java

Preparing Video For Download...