Tôi biết đây là một câu hỏi rất đơn giản, nhưng tôi đã làm việc bằng Python trong một thời gian dài và bây giờ tôi phải quay trở lại Java, dường như có vấn đề thay đổi chip và gói đầu của tôi xung quanh tính đa hình cơ bản của Java.Xác định chữ ký của phương thức bằng cách sử dụng các lớp kế thừa trong các phương thức trừu tượng của Java
Có thể ghi đè (thực hiện, chính xác) phương thức 'abstract
' trong lớp bằng Java sử dụng một trong các lớp được thừa hưởng làm đối số không?
Hãy để tôi giải thích với một ví dụ rất đơn giản (sau khi "gần như chính thức"example với hình dạng)
class Shape {}
class Circle extends Shape {}
class Triangle extends Shape {}
abstract class ShapeDrawer {
abstract void draw(Shape s);
}
class CircleDrawer extends ShapeDrawer {
void draw(Circle c){
System.out.println("Drawing circle");
}
}
Có cách nào của việc có Java xác định các phương pháp draw
trong lớp CircleDrawer
như việc thực hiện của trừu tượng draw
trong ShapeDrawer
? (Lớp Circle
kéo dài từ Shape
sau khi tất cả)
Nếu không đặt: Những gì tôi muốn là các phương pháp draw
của lớp CircleDrawer
chỉ chấp nhận trường hợp của loại Circle
, nhưng cùng một lúc, tôi muốn nói trình biên dịch Java rằng void draw(Circle c)
thực sự là việc thực hiện phương thức trừu tượng abstract void draw(Shape s)
nằm trong lớp cha của nó.
Cảm ơn bạn trước.
Tôi có thể chỉ đọc sai, nhưng nếu đó không phải là điều bạn muốn, bạn có thể cung cấp ví dụ về những gì bạn muốn? – Aify
@Aify, tôi đã chỉnh sửa câu hỏi mô tả những gì tôi muốn đạt được. Hy vọng là rõ ràng hơn bây giờ? Hãy cho tôi biết nếu nó không phải là. – BorrajaX
Đừng quên tắt nguồn trước khi bạn vứt con chip đó ra. – markspace