جاوا

جلسه ۳۴: override یا بازنویسی متد در جاوا

در این جلسه ، می آموزید که override یا بازنویسی متد چیست و چگونه می توان از آن در جاوا استفاده کرد. موارد زیر را بیان خواهیم کرد:

  • یک مقدمه کوتاه
  • مزایای بازنویسی متد
  • ویژگی های اصلی در بازنویسی متد

یک مقدمه کوتاه

override کردن متد فرایند تعریف مجدد یا بازنویسی متد کلاس پایه در یک کلاس مشتق شده است.

به عبارت دیگر ، اگر یک زیر کلاس ، پیاده سازی خاصی از متدی را که توسط یکی از کلاسهای پایه ی آن اعلام شده فراهم کند ، با عنوان override متد شناخته می شود. در مثال قبلی ، کلاسهای Rectangle و Circle متد ()getArea از کلاس Shape را override می کردند. override انجام می شود تا کلاس فرزند بتواند متد خود را که قبلاً توسط کلاس والد ارائه شده است پیاده سازی کند. در این مورد:

  • به متد موجود در کلاس والد ، متد جایگزین شده یا overridden method گفته می شود.
  • به متد موجود در کلاسهای فرزند متد جایگزین یا overriding method گفته می شود.

در جلسه قبلی متد ()getArea را دیدیم که مفهوم override را نشان می داد. در کدهای زیر مکان هایی که مفهوم override استفاده شده را می توانید ببینید.

// A sample class Shape which provides a method to get the Shape's area
class Shape {

  public double getArea() {
    return 0;
  }
  
}

// A Rectangle is a Shape with a specific width and height
class Rectangle extends Shape {   // extended form the Shape class

  private double width;
  private double height;

  public Rectangle(double width, double height) {
    this.width = width;
    this.height = height;
  }

  public double getArea() {
    return width * height; 
  }
}

// A Circle is a Shape with a specific radius
class Circle extends Shape {
  
  private double radius;

  public Circle(double radius) {
    this.radius = radius; 
  }
  public double getArea() {
    return 3.14 * radius * radius; 
  }
  
}


class driver {

  public static void main(String args[]) {
    Shape[] shape = new Shape[2]; // Creating shape array of size 2

    shape[0] = new Circle(2); // creating circle object at index 0
    shape[1] = new Rectangle(2, 2); // creating rectangle object at index 1

    // Shape object is calling children classes method
    System.out.println("Area of the Circle: " + shape[0].getArea());
    System.out.println("Area of the Rectangle: " + shape[1].getArea());
  }

}

مزایای بازنویسی متد

بازنویسی یا جایگزینی متد (Method overriding) در برنامه نویسی شی گرا (OOP) بسیار مفید است. برخی از مزایای آن در زیر بیان شده است:

  • کلاس های مشتق شده می توانند پیاده سازی های خاص خود را بدون تغییر در متدهای کلاس والد ، به متدهای ارثی ارائه دهند.
  • برای هر متد، یک کلاس فرزند می تواند از پیاده سازی ارائه شده در کلاس والد استفاده کند یا پیاده سازی خود را انجام دهد.

ویژگی های اصلی در بازنویسی متد

در اینجا برخی از ویژگی های اصلی Method Overriding وجود دارد:

  • بازنویسی متد به وراثت نیاز دارد و باید حداقل یک کلاس مشتق شده وجود داشته باشد.
  • کلاس یا کلاسهای مشتق شده باید برای متدهای override شده دارای اعلامیه ای یکسان با اعلامیه این متد در کلاس والد باشند ، به عنوان مثال ، سطح دسترسی ، نام ، پارامترهای مشابه و همان نوع بازگشتی از متد در کلاس پایه.
  • متد موجود در کلاس یا کلاسهای مشتق شده باید پیاده سازی متفاوتی از یکدیگر داشته باشد.
  • متد کلاس پایه باید در کلاس مشتق شده override شود.
  • کلاس و همچنین متد پایه نباید به صورت final اعلام شده باشند.

اکنون که با مفهوم method overriding آشنا شدیم ، تفاوت بین method overloading و method overriding را در درس بعدی بررسی می کنیم.

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

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

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

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