ما در سلسله آموزش های ساده جاوا در جلسه بیست و پنجم مبحث Abstraction( انتزاع) و در جلسه بیست و هفتم مبحث Interface را بررسی کردیم. قبل از مطالعه این مقاله دو مبحث مذکور را مطالعه کنید.
1. جلسه بیست و پنجم مبحث Abstraction( انتزاع)
2. جلسه بیست و هفتم مبحث Interface
در این مقاله قصد داریم با هم در مورد تفاوت های میان کلاس Abstract و Interface با مثال بحث کنیم.
• هر یک از تفاوت های میان کلاس Abstract و Interface در جاوا را که در جدول بالا بهش پرداختیم با مثال بررسی میکنیم:
مورد1 :
abstract class Cat { // کلاس Abstract میتواند متدهای انتزاعی (abstract) و غیرانتزاعی (non-abstract) داشته باشد. public abstract void sleep (); public void run() { System.out. print ln("Cat is runing..."); } } interface Dog { // Interface تنها میتواند متدهای انتزاعی(abstract) داشته باشد. public void sleep (); public void run(); } |
مورد2:
// کلاس Abstract وراثت چندگانه را ساپورت نمیکند. abstract class A { } abstract class B extends A { } //Interface از وراثت چندگانه حمایت میکند interface C { } interface D { } interface E extends C, D { } |
مورد3:
// کلاس Abstract میتواند متغیرهای final و غیر final، static و غیر static داشته باشد. abstract class Example1{ private int numOne=10; protected final intnumTwo=20; public static final intnumThree=500; public void display1(){ System.out. print ln("Num1="+numOne); } } class Example2extends Example1{ public void display2(){ System.out. print ln("Num2="+numTwo); System.out. print ln("Num2="+numThree); } } class Demo{ public static void main(String args[]){ Example2 obj=new Example2(); obj.display1(); obj.display2(); } } |
مورد3:
// Interface تنها میتواند متغیرهای final و static داشته باشد. interface Example1{ intnumOne=10; } class Example2 implements Example1{ public void display1(){ System.out. print ln("Num1="+numOne); } } class Demo{ public static void main(String args[]){ Example2 obj=new Example2(); obj.display1(); } } |
مورد4:
interface A { } // کلاس Abstract میتواند به interface، implements شود. //Interface نمیتواند به کلاس abstract، implements شود. abstract class B { } |
مورد5:
interface A { } // کلمه کلیدی abstract برای اعلان کلاس abstract استفاده میشود. // کلمه کلیدی interface برای اعلان یک interface استفاده میشود. abstract class B { } |
• مورد 6 همان مورد 2 است که به گونه دیگر بیان کردیم.
مورد7:
interface A { } interface B { } interface C { } interface D { } abstract class E { } // یک کلاس میتواند تنها یک کلاس abstract را به ارث ببرد. // یک کلاس میتواند به هر تعداد Interface را implements کند. class F extends E implements A, B, C, D { } |
نویسنده: رحمان زارعی
برای بهبود کمیت و کیفیت محتوای آموزشی وب فارسی ما را حمایت کنید.
این مقاله را از طریق لینک زیر بصورت کتاب الکترونیکی (PDF) دانلود کنید.
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |