Thỉnh thoảng, tôi bắt gặp một số thiết kế lớp học như sau.Mục đích có con trừu tượng bằng cách mở rộng phụ huynh cụ thể
abstract class animal {
public abstract void speak();
}
class dog extends animal {
@Override
public void speak() {
// Do something.
}
}
abstract class abstract_dog extends dog {
@Override
public abstract void speak();
}
tôi đã tự hỏi, mục đích của việc có một lớp abstract_dog
là gì? Tại sao chúng ta "biến đổi" phương pháp nói không trừu tượng thành trừu tượng nói lại?
Lưu ý: nếu bạn kiểm soát phân cấp lớp, cách tiếp cận tốt hơn sẽ là loại bỏ lớp chó cụ thể hoàn toàn hoặc có lớp con abstract_dog. Thích làm cho các lớp không lá trừu tượng. –