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

با اضافه شدن قابلیت default method در جاوا 8 امکان بوجود آمدن مشکل وراثت چندگانه (Multiple Inheritance) وجود دارد:

interface Person {
    default void sayHello() {
        System.out.println("Hello");
    }
}
 
interface Male {
    default void sayHello() {
        System.out.println("Hi");
    }
}
 
class Sam implements Person, Male {
 
}

در مثال فوق در صورت فراخوانی متد sayHello از یک شئ کلاس Sam، کدام پیاده سازی از متد sayHello فراخوانی می شود؟

1 پاسخ

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

در اینگونه موارد کامپایلر جاوا 8 خطا می دهد و شما را مجبور می کند که حتما متد sayHello را override کنید، در مورد کد بالا خطای زیر را می دهد:

class Sam inherits unrelated defaults for sayHello() from types
 Person and Male class Sam implements Person, Male { ^ 1 error

سوالات مشابه

0 امتیاز
1 پاسخ 922 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 1.0هزار بازدید
0 امتیاز
0 پاسخ 600 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+2 امتیاز
1 پاسخ 551 بازدید
+1 امتیاز
1 پاسخ 603 بازدید
...