Tôi có một lớp A, với một phương pháp doAction trừu tượng (BaseClass obj) mong đợi một param loại BaseClassĐi qua lớp Derived đến một phương pháp mà cần phải ghi đè mong đợi một lớp cơ sở
public class A {
//....
abstract void doAction(BaseClass obj);
//....
}
Bây giờ, tôi có một lớp B cần mở rộng A. Tuy nhiên, phương thức doAction của B cần sử dụng đối tượng DerivedClass mở rộng BaseClass.
public class B extends class A {
//..
void doAction(DerivedClass obj) {
obj.callMethodAvailableOnlyInDerivedClass();
}
}
Làm thế nào để xử lý tình trạng này mà tôi cần phải vượt qua param loại DerivedClass phương pháp để được ghi đè trong khi nó đang mong đợi một BaseClass?
Cảm ơn!
+1 cho nguyên tắc Liskov. Lần đầu tiên tôi nghe về nó, cảm ơn! – GETah
Và nếu bạn có một loạt các phương pháp này hành động trên các đối tượng khác nhau ?! –