Tôi đã đọc các tài liệu Python về classes và đi qua đoạn này mà tôi không chắc chắn về:Calling overriden phương pháp trong lớp có nguồn gốc từ Base Class
lớp Derived có thể ghi đè lên các phương pháp của lớp cơ sở của họ. Bởi vì phương pháp không có ưu đãi đặc biệt khi gọi các phương pháp khác của cùng một đối tượng , một phương pháp của một lớp cơ sở mà gọi một phương pháp được định nghĩa trong lớp cùng cơ sở có thể sẽ gọi một phương thức của một lớp được thừa kế mà ghi đè nó. (Đối với các lập trình viên C++: tất cả các phương pháp trong Python là một cách hiệu quả ảo.)
Ví dụ:
class A:
def foo(self):
self.bar()
def bar(self):
print "from A"
class B(A):
def foo(self):
self.bar()
def bar(self):
print "from B"
Điều này có nghĩa rằng một đối tượng của lớp A obj = A()
bằng cách nào đó có thể kết thúc in "từ B" ? Tôi có đọc chính xác không? Tôi xin lỗi nếu điều này không có ý nghĩa. Tôi là một chút bối rối như thế nào python xử lý Thừa kế và ghi đè. Cảm ơn!
Để mở rộng, từ tác là _may_ gọi một phương thức của một lớp dẫn xuất. 'obj = B()' _would_ in "từ B". –