تعداد بازدید: 2734

abstract یا انتزاع در جاوا

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

نکات کلیدی ساخت کلاس abstract :

  • برای ساخت کلاس abstract کلمه کلیدی abstract رو با حروف کوچک قبل از class قرار دهید.
  • هر کلاس می تواند تنها از یک کلاس abstract کلاس ارث بری کند.
  • در کلاس abstract متد abstract تعریف می کنیم و انتظار داریم که این متد در کلاس فرزند پیاده سازی شود (در غیر این صورت خطای کامپایل خواهیم داشت)
  • متد abstract تنها در کلاس abstract تعریف می شود.
  • برای ساخت متد abstract بعد سطح دسترسی متد و قبل از نوع خروجی (بین سطح دسترسی و نوع خروجی) کلمه کلیدی abstract رو بیارید.
  • متد abstract در کلاس والد فاقد بدنه می باشد و در کلاس فرزند دارای بدنه.
  • عمل پیاده سازی متد در کلاس فرزند از کلاس والد abstract عمل overriding می باشد.
  • یک کلاس abstract می تواند در خود صفر یا چند متد از نوع abstract داشته باشد.

به مثال زیر توجه کنید:

کلاس Shape :

public abstract class Shape {
    public abstract void area();
}

کلاس Rectangle :

public class Rectangle extends Shape {

    int x;
    int y;
    public Rectangle(int x , int y){
        this.x = x;
        this.y = y;
    }
    public void area(){
        System.out.println("Area of Rectangle is: " + x*y);
    }
}

کلاس Shape به عنوان کلاس والد به صورت abstract تعریف شده و در داخل خودش متد area رو به صورت abstract داره و کلاس فرزندش به نام Rectangle از اون ارث بری می کنه و مجبوره که متد abstract با نام area رو تعریف و پیاده سازی کنه.

public class MyClass {

    public static void main(String args[]){
        Rectangle a = new Rectangle(4,2);
        a.area();
    }
}

در یک کلاس جداگانه در همون پکیج ما میایم و یک نمونه از کلاس فرزند میسازیم و متد مساحت یا area رو فراخوانی می کنیم. (در حقیقت یک مستطیل با طول ۴ و عرض ۲ می سازیم و مساحتش رو بدست میاریم).

اگر از کلاس Shape شی بسازیم (Shape a = new Shape()) خطای کامپایل خواهیم داشت.

 

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای abstract یا انتزاع در جاوا

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

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