يرث متغير ثابت في جافا
-
29-09-2019 - |
سؤال
أريد أن أحصل على الإعداد التالي:
abstract class Parent {
public static String ACONSTANT; // I'd use abstract here if it was allowed
// Other stuff follows
}
class Child extends Parent {
public static String ACONSTANT = "some value";
// etc
}
هل هذا ممكن في جافا؟ كيف؟ أفضل عدم استخدام متغيرات/أساليب المثيل إذا كان بإمكاني تجنب ذلك.
شكرًا!
تعديل:
الثابت هو اسم جدول قاعدة البيانات. كل جسم طفل هو orm صغير.
المحلول
لا يمكنك فعل ذلك بالضبط كما تريد. ربما يكون حل وسط مقبول:
abstract class Parent {
public abstract String getACONSTANT();
}
class Child extends Parent {
public static final String ACONSTANT = "some value";
public String getACONSTANT() { return ACONSTANT; }
}
نصائح أخرى
في هذه الحالة ، عليك أن تتذكر في جافا ، لا يمكنك تجاوز طرق ثابتة. ما حدث هو إخفاء الأشياء.
وفقًا للرمز الذي وضعته إذا قمت بإجابة الأشياء التالية ، ستكون الإجابة فارغة
Parent.ACONSTANT == null ; ==> true
Parent p = new Parent(); p.ACONSTANT == null ; ==> true
Parent c = new Child(); c.ACONSTANT == null ; ==> true
طالما أنك تستخدم الوالدين كنوع مرجعي سيكون Aconstant فارغًا.
دعنا نفعل شيئًا كهذا.
Child c = new Child();
c.ACONSTANT = "Hi";
Parent p = c;
System.out.println(p.ACONSTANT);
سيكون الإخراج فارغًا.
لا تنتمي إلى StackOverflow