บทนำสู่ Polymorphism

Java เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

Sani Yusuf

Lead Software Engineering Content Developer

สาธิต Polymorphism

  • Polymorphism คือแนวคิดใน Object-Oriented Programming (OOP) ที่ช่วยให้ออบเจกต์มีได้หลายรูปแบบ
  • แสดงให้เห็น class inheritance

  // Abstract Car class
  abstract class Car {

    // Abstract drive method
    abstract void drive(); 
    // No Code Implementation 

  }

  // Toyota class inherits Car class
  class Toyota extends Car {  

  }
  // Tesla class inherits Car class
  class Tesla extends Car {  

  }
  // Lamborghini class inherits Car class
  class Lamborghini extends Car {          

  }
Java เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

การ Override เมธอด

  • คีย์เวิร์ด @Override ช่วยให้กำหนด implementation ของเมธอดได้เอง
  // Abstract Car class
  abstract class Car {

    // Abstract drive method
    abstract void drive(); 
    // No Code Implementation 

  }


 class Toyota extends Car {  
   @Override // Keyword used to override
    void drive() {
      // Toyota specific implementation code
    }  
 }
 class Tesla extends Car {   
   @Override
    void drive() {
      // Tesla specific implementation code
    } 
 }
 class Lamborghini extends Car {  
   @Override
    void drive() {
      // Lamborghini specific implementation code
    }   
 }
Java เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

การ Override เมธอดใน Interface


  // ElectricCar interface
  interface ElectricCar {

    abstract void charge(); 
    // No Code Implementation 

  }


  • แนะนำให้ใช้ @Override เมื่อใช้งานเมธอดจาก interface

  // Tesla class implementing 
  // ElectricCar interface
  class Tesla implements ElectricCar {

    // charge method must be implemented
    @Override
    void charge(){
      // Tesla specific charge implementation
      // Selective inheritance with interface
    }          
  }













Java เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

การ Overload เมธอด

  • Overloading ช่วยให้เมธอดที่มีชื่อเดียวกันมี implementation ที่แตกต่างกันได้

  // Toyota class 
  class Toyota {   

    void drive() {
      // First implementation of drive method
    }

// Overloaded drive method void drive(int topSpeed) { // Second implementation of drive } }
Java เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

การ Overload Constructor

  • Constructor สามารถ overload ได้ เพื่อให้มีหลาย constructor ใน class เดียวกัน
  // Honda class
  class Honda {
    // First Constructor
    public Honda(String color,
                 String model) {

    }

// Second Constructor public Honda(String color, String model, String licensePlate) { } }

  public class Main {  
    public static void main(
      String[] args) {

      // First Constructor usage
      Honda hondaOne = 
        new Honda("Red", "Accord");


// Second Constructor usage Honda hondaTwo = new Honda("Red", "Civic", "FST-1977"); } }
Java เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

มาฝึกกันเถอะ!

Java เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

Preparing Video For Download...