تناقش هذه المقالة مفهومًا أساسيًا في مجال مفهوم Java الموجهة نحو الكائنات (متغيرات الأعضاء المخفية)
قبل مناقشة هذه المشكلة ، دعونا نلقي نظرة على قطعة رمز بسيطة للغاية. ما هي نتيجة البيانات للطريقة؟
/*** Author Hollis 17/9/27. */ الفئة العامة fieldoverriding {public static void main (string [] args) {sub c1 = new sub () ؛ system.out.println ("c1.s:" + c1.s) ؛ system.out.println ("c1.s:" + c1.s) ؛ system.out.println ("c1.say:" + c1.say ()) ؛ Super C2 = جديد sub () ؛ System.out.println ("C2.S:" + C2.S) ؛ System.out.println ("C2.S:" + C2.S) ؛ }} class super {string s = "super" ؛ String says () {return "Hello Super" ؛ }} class sub يمتد super {string s = "sub" ؛ String says () {return "hello sub" ؛ }}نتيجة الإخراج:
c1.s: sub c1.say: hello sub c2.s: super c2.say: hello sub
هل هو نفسه كما تعتقد؟ إذا كان الأمر هو نفسه ، فلن تضطر إلى متابعة القراءة. لأن هذا ليس بالأمر الصعب ، فقط اعرف ذلك.
أعد كتابة في جافا
في فهم عميق لإعادة كتابة وحمل الزائد في جافا ، قدمنا:
في الحالة التي توجد فيها طريقتان تحملان نفس الاسم وقائمة المعلمات في الفئة الفرعية من Java و Class Plass. نظرًا لأن لديهم نفس توقيع الطريقة ، فإن طرقًا جديدة في الفئة الفرعية ستجاوز الأساليب الأصلية في الفئة الأصل.
سابقا لأن جافا لديها إعادة كتابة الأساليب في الميراث ، وهذا يعكس أيضا تعدد الأشكال الديناميكية لجاوة.
هل يمكن إعادة كتابة متغيرات الأعضاء في جافا؟
تنص مقدمة إعادة كتابة Java أعلاه بوضوح على أن إعادة الكتابة تشير إلى هذه الطريقة. لم يتم ذكر متغيرات الأعضاء. من خلال المثال أعلاه ، يمكننا في الواقع العثور على متغيرات الأعضاء لم تتم إعادة كتابة.
لذلك ، في Java ، لن يتم إعادة كتابة متغيرات الأعضاء. هذه كلمة أخرى: إخفاء.
إخفاء متغيرات الأعضاء في جافا
تعريف المجالات المخفية في وثائق Java:
داخل الفصل ، يخفي حقل له نفس اسم حقل في الطبقة الفائقة حقل الفئة الفائقة ، حتى لو كانت أنواعها مختلفة. داخل الفئة الفرعية ، لا يمكن الرجوع إلى الحقل في الطبقة الفائقة باسمه البسيط. بدلاً من ذلك ، يجب الوصول إلى الحقل من خلال Super. بشكل عام ، لا نوصي بإخفاء الحقول لأنه يجعل القراءة من الصعب قراءتها.
ترجم إلى الصينية:
في الفصل ، إذا كانت المتغيرات العضو في الفئة الفرعية لها نفس اسم متغيرات الأعضاء في الفئة الأصل ، ثم حتى لو كان لديهم أنواع مختلفة ، فهي لديها نفس الاسم فقط. متغيرات الأعضاء في الفئة الأصل مخفية. في الفئات الفرعية ، لا يمكن الوصول إلى متغيرات الأعضاء في الفئة الأصل ببساطة بالرجوع إليها. بدلاً من ذلك ، يجب الحصول على متغيرات الأعضاء المخبأة بواسطة الفئة الأصل من الإشارة إلى الفئة الأصل. بشكل عام ، لا نوصي بإخفاء متغيرات الأعضاء لأن هذا سيجعل الكود صعبًا.
في الواقع ، ببساطة ، لن تكتب الفئة الفرعية متغيرات الأعضاء التي تحدد الفئة الأصل ، وبالتالي لا يمكن الوصول إلى متغيرات الوصول إلى أعضاء باستخدام تعدد الأشكال مثل الطرق.
كيفية الوصول إلى متغيرات الأعضاء المخفية
في الواقع ، من خلال الأمثلة السابقة ومقدمة متغيرات الأعضاء الآن ، فقد عرفت بالفعل كيفية الوصول إلى متغيرات الأعضاء المخفية. إنه لاستخدام مرجع الفئة الأصل للوصول إلى متغيرات الأعضاء ، مثل Super c2 = new Sub(); System.out.println(" c2.s : " + c2.s);。 أو استخدام System.out.println(((Super)c1).s); .
لخص
ما سبق هو إعادة كتابة الأساليب في جافا وإخفاء متغيرات الأعضاء التي قدمها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!