Implements و extends في Java: متى تستخدم وما الفرق؟
مرحباً بالجميع! بدأت تعلم Java ولا أستطيع فهم الفرق بين الكلمتين المفتاحيتين extends و implements. يبدو أن كلاهما يُستخدمان للوراثة، لكن متى نستخدم أيهما؟
لقد كتبت كوداً صغيراً، لكنه لا يُترجم (compile) وأشعر أنني أخلط بين المفاهيم:
```java
class Animal {
void eat() {
System.out.println("يأكل");
}
}
interface Pet {
void play();
}
// هنا لست متأكداً
class Dog extends Animal implements Pet {
// أحاول تجاوز (override) الطريقة من الـ interface
void play() {
System.out.println("يلعب بالكرة");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat();
dog.play();
}
}
```
الخطأ: الطريقة play() في Dog لا تتجاوز (override) الطريقة