+3 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

اگر در جاوا فقط کلاس ها فرزند کلاس Object هستند، چرا در زمان تعریف یک متغییر از یک interface، به متد های کلاس Object مثل hashCode یا equals دسترسی داریم؟

interface A
{    
 
}
 
class InterfaceAndObjectClass
{
    public static void main(String[] args)
    {
        A a = null;
 
        a.equals(null);
 
        a.hashCode();
 
        a.toString();
    }
}

یا اینکه می توانیم متد های کلاس Object را در یک interface بازنویسی (override) کنیم؟

interface A
{
    @Override
    public boolean equals(Object obj);
 
    @Override
    public int hashCode();
 
    @Override
    public String toString();
}

1 پاسخ

+3 امتیاز
قبل توسط (1.1هزار امتیاز)

در زبان برنامه نویسی جاوا فقط کلاس ها فرزند کلاس Object هستند. برای توجیح موارد فوق نیز بر اساس بند 9.2 در Java language Specification  اگر یک interface بصورت مستقیم فرزند هیچ interface دیگری نباشد، به ازای تمامی متد های public کلاس Object یک متد ضمنی (implicit) که abstract و public است در آن interface تعریف می شود. 

سوالات مشابه

0 امتیاز
4 پاسخ 1.5هزار بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط ali-nb (10 امتیاز)
0 امتیاز
0 پاسخ 709 بازدید
+1 امتیاز
5 پاسخ 7.7هزار بازدید
0 امتیاز
0 پاسخ 367 بازدید
0 امتیاز
1 پاسخ 322 بازدید
+1 امتیاز
1 پاسخ 3.7هزار بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط mp (7.0هزار امتیاز)
...