+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 پاسخ 679 بازدید
+1 امتیاز
5 پاسخ 7.6هزار بازدید
0 امتیاز
0 پاسخ 348 بازدید
0 امتیاز
1 پاسخ 303 بازدید
+1 امتیاز
1 پاسخ 3.6هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط mp (7.0هزار امتیاز)
...