بررسی دقیق‌تر اینترفیس‌ها در جاوا (بخش اول)


بررسی دقیق‌تر اینترفیس‌ها در جاوا (بخش اول)
براي خريد اين درس نياز است وارد سايت شويد. در صورت نداشتن حساب کاربري عضو شويد.

بررسی جامع اینترفیس‌ها در جاوا (بخش اول)

در دوره مقدماتی تا متوسط جاوا، با interface و abstraction آشنا شدیم. در این جلسه مثال‌هایی از شی گرایی و ارتباط بین کلاس ها و interface و کلاس های abstraction حل می کنیم تا این مبحث مهم را بهتر درک کنیم.

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

نحوه تعریف interface

public interface IA {

    void showMessage(String message);

    void fun1(int a,int b);

}

از interface نمی‌توان شی ساخت. اما می‌توان با استفاده از کلاس‌های بی نام(anonymous) آن‌ها پیاده سازی کرد.

به عنوان مثال نمی‌توان اینترفیس IA را به صورت زیر پیاده سازی کرد.

public class MainClass {

    public static void main(String[] args) {

            IA ia=new IA();

    }

}

کد بالا با خطا مواجعه می‌شود و امکان پیاده سازی آن مشابه کلاس وجود ندارد.

اما به کمک کلاس‌های بی نام می‌توان از interface درون کلاس نمونه ساخت.

مثال:

public class MainClass {

    public static void main(String[] args) {

   IA ia=new IA() {

           @Override

           public void showMessage(String message) {

               System.out.println("message = " + message);

           }


           @Override

           public void fun1(int a, int b) {

               System.out.println("a+b = " + (a+b));

           }

       };


       ia.showMessage("mehdi");

       ia.fun1(23,45);

    }

}

در بالا به کمک کلاس بی نام اینترفیس IA را دوباره نویسی(override) کردیم و درون شی از اینترفیس IA نگهداری کردیم و برای متدهای آن بدنه تعریف کردیم و سپس متدها را صدا زدیم.

خروجی:

Message = mehdi

A+b = 68

همانطور که می‌دانید اگر یک کلاس را فرزند interface کنیم(implements) کنیم باید تمام توابع درون interface را درون کلاس فرزند دوباره نویسی کنیم. اما آیا می‌توان کلاسی تعریف کرد که فرزند interface شود اما متدهای آن را بازنویسی نکند؟ بله به کمک کلاس‌های abstract این کار ممکن است اما زمانی که آن کلاس abstract والد کلاس معمولی می‌شود باید تمام متد های interface را بازنویسی کرد. در واقع در آخرین مرحله از ارتباط بین interface ها و کلاس های abstract باید تمام متدهای آنها در کلاس معمولی فرزند بازنویسی شود. برای درک بهتر این موضوع در ویدیو مثال هایی را حل می‌کنیم.

 

 

سپاسگزاریم که همراه ما هستید

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

توضیحات ذکر شده چکیده ای می‌باشد از آنچه که می‌خواهید بیاموزید، برای فهم بهتر مطالب این جلسه، می‌توانید این درس را خریداری کنید و از نکات ارزشمند آن بهره مند شوید.

 

 


نظر بدهید نظر شما در تصمیم دیگران اثرگذار است. لطفا برای ما و همراهان درسمن نظر خود را بنویسید.
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات : جلسه
مدت زمان : 2057 دقیقه
حجم دوره : 6/35 گیگابایت
سطح مهارت : پیشرفته
وضعیت دوره : پایان یافته
تعداد دانشجویان : 1064
: میانگین امتیاز
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی

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