جاوا

جلسه ۳۰: انواع وراثت در جاوا

در جلسات قبلی اصول وراثت بیان شد. در این جلسه ، با انواع مختلف وراثت در جاوا آشنا می شوید. موارد زیر را بیان خواهیم کرد

  • وراثت تکی
  • وراثت چند سطحی
  • وراثت سلسله مراتبی
  • وراثت چندگانه
  • وراثت ترکیبی

بر اساس کلاس های والد و کلاس های فرزند ، به طور کلی پنج نوع وراثت زیر وجود دارد:

  1. تکی
  2. چند سطحی
  3. سلسله مراتبی
  4. چندگانه
  5. ترکیبی

وراثت تکی

در وراثت تکی، فقط یک کلاس واحد وجود دارد که از یک کلاس دیگر ارث بری دارد. در این دسته می توانیم کلاس وسیله نقلیه یا Vehicle (کلاس والد) و کلاس اتومبیل یا Car (کلاس فرزند) را مثال بزنیم. در زیر پیاده سازی این کلاس ها را می بینید:

class Vehicle {          //Base Vehicle class  

  private int topSpeed;
  public void setTopSpeed(int speed) {
    this.topSpeed=speed;
    System.out.println("The top speed is set to: "+ topSpeed);
  }

} 

class Car extends Vehicle { // sub class Car extending from Vehicle

  public void openTrunk() {  
    System.out.println("The Car trunk is Open Now"); 
  } 
  
} 

class Main {

  public static void main(String[] args) {  
    Car corolla = new Car(); 
    corolla.setTopSpeed(220);
    corolla.openTrunk();
  } 
  
}

وراثت چند سطحی

وقتی یک کلاس از کلاسی مشتق می شود که خود آن از یک کلاس دیگر مشتق می شود ، این نوع وراثت را وراثت چند سطحی (Multi-level Inheritance) می نامند. کلاسها را می توان طبق نیاز مدل در هر سطح دیگری از وراثت باز هم گسترش داد.

      سه کلاس نشان داده شده در بالا را پیاده سازی می کنیم:

    • اتومبیل (Car) یک وسیله نقلیه (Vehicle) است
    • Prius یک اتومبیل (Car) است
class Vehicle {          //Base Vehicle class  

  private int topSpeed;

  public void setTopSpeed(int speed) {
    this.topSpeed=speed;
    System.out.println("The top speed is set to: "+ topSpeed);
  }
  
}

class Car extends Vehicle { // Derived from Vehicle Base for Prius

  public void openTrunk() {
    System.out.println("The Car trunk is Open Now!"); 
  } 

} 

class Prius extends Car {// Derived from Prius & can be base to any further class

  public void turnOnHybrid() {
    System.out.println("The Hybrid mode is turned on!"); 
  } 

} 

class Main {

  public static void main(String[] args) {
    Prius priusPrime = new Prius(); 
    priusPrime.setTopSpeed(220);
    priusPrime.openTrunk();
    priusPrime.turnOnHybrid();
  }

}

    وراثت سلسله مراتبی

    هنگامی که بیش از یک کلاس از یک کلاس ارث می برند ، از آن به عنوان وراثت سلسله مراتبی یاد می شود. در وراثت سلسله مراتبی ، طبق نیازهای طراحی بیش از یک کلاس از یک کلاس پایه مشتق می شوند. ویژگی های مشترک این کلاس های فرزند در داخل کلاس پایه پیاده سازی می شود. مثال:

    • یک اتومبیل (Car) یک وسیله نقلیه (Vehicle) است.
    • یک کامیون (Truck) یک وسیله نقلیه (Vehicle) است.

    class Vehicle {          //Base Vehicle class  
    
      private int topSpeed;
    
      public void setTopSpeed(int speed) {
        this.topSpeed=speed;
        System.out.println("The top speed of "+getClass().getSimpleName()+" is set to: "+ topSpeed);
      }
    
    } 
    
    class Car extends Vehicle { // Derived from Vehicle Base for Prius
    
      //implementation of Car class
    } 
    
    class Truck extends Vehicle {// Derived from Prius can be base to any further class
    
      //implementation of Truck class
    } 
    
    class Main {
    
      public static void main(String[] args) {
        Car corolla = new Car(); 
        corolla.setTopSpeed(220);
    
        Truck volvo = new Truck();
        volvo.setTopSpeed(120);
      } 
    
    }
    

    وراثت چندگانه

    وقتی یک کلاس از بیش از یک کلاس پایه مشتق شده باشد ، به عبارت دیگر وقتی یک کلاس بیش از یک کلاس والد (والد مستقیم و بدون واسطه) داشته باشد، این نوع وراثت را وراثت چندگانه یا Multiple Inheritance می نامیم. مثال:

    • هیوندای النترا اتومبیل است.
    • هیوندای النترا یک سدان نیز است.

    وراثت ترکیبی

    نوعی وراثت که ترکیبی از وراثت چندگانه و وراثت چند سطحی است ، وراثت ترکیبی نامیده می شود.

    • موتور احتراقی نوعی موتور است.
    • موتور الکتریکی نوعی موتور است.
    • یک موتور هیبریدی ترکیبی از موتور احتراقی و موتور الکتریکی است.

    توجه: در جاوا ، وراثت چندگانه و ترکیبی فقط با استفاده از اینترفیس ها اعمال می شوند.

    این جلسه در مورد انواع مختلف وراثت بود. در جلسه بعدی ، در مورد مزایای وراثت بحث خواهیم کرد.

    نوشته های مشابه

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    دکمه بازگشت به بالا