abstract در جاوا

abstract در جاوا (abstraction)

در این جلسه به آموزش abstract در جاوا میپردازیم. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با شی گرایی
  2. آشنایی با متد
  3. آشنایی با override

Abstraction

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

کلاس Abstract در جاوا

کلاسی که کلمه کلیدی abstract در آن استفاده شود را کلاس abstract در جاوا میگوییم. این کلاس میتواند شامل متدهای  abstract (متد بدون بدنه یا body) و غیر abstract(متد با پیاده سازی یا بدنه) باشد. کلاس abstract فقط میتواند extends شود و باید متدهای آن پیاده سازی شود. کلاس Abstract را نمیتوان new کرد.

متد abstract در جاوا

متد abstract متدی است که هیچگونه پیاده سازی از خودش ندارد و مثال زیر یک نمونه متد  abstract است:

abstract void run();

مثال اول abstract در جاوا

یک کلاس به نام Bike داریم که آن را به صورت abstract تعریف کردیم. کلاس دیگری به نام Honda کلاس Bike را extends کرده است. ما در کلاس Bike یک متد abstract به نام Run تعریف کردیم. چون این متد abstract هست باید در کلاس فرزندش یعنی Honda پیاده سازی شود. کد abstract در جاوا به صورت زیر است:

public abstract class Bike {

     abstract void run();

}

public class Honda extends Bike {

     @Override

     void run() {

          System.out.println(“running safely..”);

     }

}

برای تست کدهای بالا، کد main زیر را بزنید:

     public static void main(String[] args) {

          Honda h = new Honda();

          h.run();

     }

مثال دوم abstract در جاوا

یک کلاس abstract داریم به نام shape که متدی به نام draw در خود دارد. این متد نیز abstract است.دو کلاس دیگر به نام Circle و Rectangle داریم که  کلاس shape را extends میکنند. دو کلاس Circle و Rectangle باید متد draw را در خود داشته باشند.کد این کلاس ها به صورت زیر است:

public abstract class Shape {

     abstract void draw();

}

public class Circle extends Shape {

     @Override

     void draw() {

          System.out.println(“drawing circle”);

     }

}

public class Rectangle extends Shape {

     @Override

     void draw() {

          System.out.println(“drawing rectangle”);

     }

}

برای تست کدهای بالا، کد main زیر را بزنید:

     public static void main(String[] args) {

          Shape s = new Circle();

          s.draw();

     }

abstract در جاوا به ما کمک کردکد قابل فهم تری را بزنیم. در کد main ما از هیچکدام از کلاس های abstract استفاده نکردیم. همانطور که گفتیم نمیتوانیم این نوع کلاس ها را new کنیم.

پاسخ دهید

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