Rendere astratta la classe car

Introduzione alla programmazione orientata agli oggetti in Java

Sani Yusuf

Lead Software Engineering Content Developer

Spiegare la classe astratta

  • La dicitura Car esiste solo come segnaposto
  • Serve ancora sapere, ad esempio, che tipo di auto è

Toyota

Mercedes

Introduzione alla programmazione orientata agli oggetti in Java

Analogia del cibo per la classe astratta

  • Al ristorante non chiedi mai solo cibo
  • Specifici sempre che tipo di cibo vuoi
    • pane
    • pasta
    • riso

Pane

Pasta

Riso

Introduzione alla programmazione orientata agli oggetti in Java

Capire le classi astratte

  • Le classi astratte esistono per raccogliere funzionalità per le classi derivate
  • Dalle classi astratte non si possono creare istanze
  • In genere le classi astratte non hanno implementazioni di codice
Introduzione alla programmazione orientata agli oggetti in Java

Classe astratta Car


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

  }








Introduzione alla programmazione orientata agli oggetti in Java

Metodi astratti

  • I metodi astratti non hanno implementazione
  • La classe che eredita deve implementare i metodi astratti

   // 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
    }           
  }
Introduzione alla programmazione orientata agli oggetti in Java

Creare metodi concreti

  • I metodi concreti sono metodi con implementazione di codice
  • Le sottoclassi non devono implementare i metodi concreti

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

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

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

Introduzione alla programmazione orientata agli oggetti in Java

Esercitiamoci!

Introduzione alla programmazione orientata agli oggetti in Java

Preparing Video For Download...