Super أكثر شيوعًا في Android ، ولا أفهم ذلك بدون مؤسسة Java ، لذلك لدي وقت لتعلمه.
إن استخدام فئات Super in Java للإشارة إلى مكونات الفئة الأساسية بسيطة نسبيًا ، والمثال على النحو التالي:
فئة الأب {قيمة int العامة ؛ public void f () {value = 100 ؛ System.out.println ("DoadClass.value:"+value) ؛ }} class childclass يمتد BoadClass {public int value ؛ public void f () {super.f () ؛ القيمة = 200 ؛ System.out.println ("childclass.value:"+value) ؛ System.out.println (value) ؛ system.out.println (super.value) ؛ }} الفئة العامة test1 {public static void main (string [] args) {childclass cc = new ChildClass () ؛ cc.f () ؛ }} الإخراج النهائي هو:
الأب. القيمة: 100ChildClass.value: 200200100
بالإضافة إلى ذلك ، يتم استخدام Super أيضًا في بناء الميراث ، والقواعد المحددة هي كما يلي:
1. يجب استدعاء طريقة بناء فئة القاعدة أثناء عملية بناء الفئة الفرعية.
2. يمكن للفئات الفرعية استخدام Super (presbument_list) لاستدعاء طريقة مُنشئ الفئة الأساسية في مُنشئها.
3. إذا لم يتم عرض مُنشئ الفئة الفرعية في مُنشئ الفئة الأساسية ، فإن النظام يستدعي مُنشئ المعلمة للفئة الأساسية بشكل افتراضي.
4. إذا لم يظهر مُنشئ الفئة الفرعية المكالمة إلى مُنشئ الفئة الأساسية ، ولا تحتوي الفئة الأساسية على مُنشئ بدون معلمات ، يحدث خطأ في التجميع.
الأمثلة على النحو التالي: (من الأفضل تجربة ذلك بنفسك هنا)
فئة الفئة الفائقة {private int n ؛ Superclass () {system.out.println ("Call Superclass ()") ؛ } superclass (int n) {system.out.println ("call superclass ("+n+")") ؛ }} الفئة الفرعية الفئة تمتد فئة Superclass {private int n ؛ الفئة الفرعية (int n) {// عندما لا يتم كتابة طريقة بناء الفئة الفائقة في طريقة بناء الفئة الفرعية ، فإن النظام افتراضي للاتصال بالفئة الأصل دون معلمات // يعادل كتابة ما يلي: // super () ؛ System.out.println ("Call SuberClass ("+n+")") ؛ this.n = n ؛ } الفئة الفرعية () {super (300) ؛ // يجب استدعاء مُنشئ الفئة الأصل أثناء عملية بناء الفئة الفرعية ، ويجب كتابة Super في الجملة الأولى (يوجد الأب أولاً ثم SON) System.out.println ("Call Sub Sterclass ()") ؛ }} الفئة العامة test2 {public static void main (string [] args) {subcleass sc1 = new subcleass () ؛ الفئة الفرعية SC2 = فئة فرعية جديدة (400) ؛ }} النتيجة النهائية هي:
استدعاء Superclass (300) استدعاء الفئة الفرعية () استدعاء الفئة الفرعية Call Superclass ()
ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون مفيدًا لتعلم الجميع.