في Java، تشبه الواجهة العقد الذي تحدده للفئات. عندما يوافق الفصل على واجهة ما، فإنه يعد باتباع القواعد أو الأساليب التي تحددها تلك الواجهة. فكر في الأمر كمجموعة من التعليمات التي يجب على الفصل الالتزام بها.
تكون الواجهات سهلة الاستخدام للغاية عندما تريد أن تتبع فئات مختلفة نفس مجموعة القواعد ولكن تنفذها بطريقتها الخاصة. تخيل مجموعة من الحيوانات: طائر يطير، وسمكة تسبح، وكلب يركض. إذا كنت تريد منهم جميعًا أن "يتحركوا" ولكن بطريقتهم الفريدة، فستستخدم واجهة لتحديد إجراء "النقل" هذا.
لنقم بإنشاء واجهة بسيطة تسمى Movable:
public interface Movable { void move(); // Any class that implements Movable must define how to move }
تحتوي هذه الواجهة على أسلوب واحد فقط، وهو move(). يجب أن يكون لدى أي فئة توافق على هذه الواجهة طريقة move().
لنقم بإنشاء بعض الفئات التي تنفذ الواجهة المنقولة:
public class Bird implements Movable { public void move() { System.out.println("The bird flies."); } } public class Fish implements Movable { public void move() { System.out.println("The fish swims."); } }
هنا، توافق فئة Bird وفئة Fish على الواجهة المنقولة، لكن لكل منهما طريقته الخاصة في الحركة.
أحد الأشياء الرائعة المتعلقة بالواجهات هو أن الفصل يمكنه تنفيذ أكثر من واحدة. لنفترض أن لدينا أيضًا واجهة Soundable:
public interface Soundable { void makeSound(); }
قد تقوم فئة الكلاب بتنفيذ كل من الأجهزة المنقولة والقابلة للصوت:
public class Dog implements Movable, Soundable { public void move() { System.out.println("The dog runs."); } public void makeSound() { System.out.println("The dog barks."); } }
هذا يعني أن كلبنا يمكنه التحرك وإصدار الصوت!
تعد الواجهات في Java طريقة قوية لفرض القواعد عبر فئات مختلفة مع السماح لكل فئة بتنفيذ تلك القواعد بطريقتها الفريدة. إنها تعزز المرونة والاتساق في التعليمات البرمجية الخاصة بك، مما يسهل إدارتها وتوسيعها.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3