تتيح آلية الربط الديناميكي الإشارات إلى الفئات الأساسية للإشارة إلى كائنات الفئة الفرعية الصحيحة ، وبالتالي تمكين البرمجة الموجهة نحو الفئة.
ومع ذلك ، سيفشل الربط الديناميكي في حالتين التاليتين.
1. طريقة فئة الأساس خاصة أو نهائية تم تعديلها
هذا سهل الفهم ، لأن الخاص يعني أن الطريقة غير مرئية للفئة الفرعية. اكتب طريقة مع نفس الاسم في الفئة الفرعية لا تتمثل في تجاوز طريقة فئة الأصل ، ولكن لتجديد طريقة جديدة ، لذلك لا توجد مشكلة في تعدد الأشكال. يمكن أيضًا تفسير الشيء نفسه من خلال النهائي ، لأن الطريقة لا يمكن تجاوزها أيضًا.
2. يتم تعديل الطريقة بشكل ثابت
الرمز كما يلي.
class base {public static void staticmethod () {system.out.println ("base staticmehtod") ؛ } public void dynamicmehtod () {system.out.println ("base dynamicmehtod") ؛ }} class sub يمتد base {public static void staticmethod () {system.out.println ("sub staticmehtod") ؛ } public void dynamicmehtod () {system.out.println ("sub dynamicmehtod") ؛ }} الفئة العامة TJ4 {public static void main (string args []) {base c = new sub () ؛ C.StaticMethod () ؛ C.Dynamicmehtod () ؛ }}/ * الإخراج: الأساس staticmehtod dynamicmehtod */لا تخرج نتيجة الإخراج "sub staticmehtod" كما هو متوقع. لأن الطرق الثابتة ترتبط بفصل بدلاً من كائن ، c.staticMethod () ؛ يعادل car.staticmethod () ؛ لذا حاول عدم استخدام متغيرات المثيل لاستدعاء طرق ثابتة لتجنب الارتباك.
التفسير التفصيلي أعلاه للطريقة الثابتة Java ليس متعدد الأشكال. هذا هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.