ما در سلسله آموزشهای ساده جاوا در جلسه بیست و پنجم مبحث 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) دانلود کنید.
لینک دانلود
کپی برداری با ذکر لینک سایت بلامانع است.
جهت اطلاع از اخبار،آموزش ها، مثال ها و سورس کدهای جدید جاوا عضو کانال تلگرام ما شوید.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
سایت جاواپرو با هدف تولید محتوای آموزشی با کیفیت رایگان در زمینه برنامه نویسی جاوا و اندروید فعالیت خود را در سال 1395 شروع کرد.امیدواریم بتوانیم دامنه گسترده تری از موضوعات پر نیاز در زمینه برنامه نویسی جاوا و اندروید را البته با حمایت شما پوشش دهیم.
تلفن تماس: 09301904690