Thừa kế là về việc đạt được các thuộc tính (và/hoặc chức năng) của các loại siêu. Ví dụ:
class Base {
//interface with included definitions
}
class Derived inherits Base {
//Add some additional functionality.
//Reuse Base without having to explicitly forward
//the functions in Base
}
Ở đây, một Derived
không thể được sử dụng khi một Base
dự kiến, nhưng có thể đóng vai trò tương tự như một Base
, trong khi thêm hành vi hoặc thay đổi một số khía cạnh của hành vi Base
s. Thông thường, Base
sẽ là một lớp trợ giúp nhỏ cung cấp cả giao diện và triển khai cho một số chức năng phổ biến mong muốn.
loại con-đa hình là về việc thực hiện một giao diện, và do đó có khả năng thay thế hiện thực khác nhau của giao diện mà tại thời gian chạy:
class Interface {
//some abstract interface, no definitions included
}
class Implementation implements Interface {
//provide all the operations
//required by the interface
}
Ở đây, một Implementation
thể được sử dụng bất cứ nơi nào một Interface
là cần thiết, và triển khai khác nhau có thể được thay thế trong thời gian chạy. Mục đích là để cho phép mã sử dụng Interface
để trở nên hữu ích hơn.
Sự nhầm lẫn của bạn là hợp lý. Java, C#, và C++ tất cả liên kết hai ý tưởng này thành một hệ thống phân cấp lớp đơn. Tuy nhiên, hai khái niệm không giống nhau, và có tồn tại các ngôn ngữ tách biệt hai khái niệm.
Bạn thấy chúng được mô tả là khác ở đâu? –