Từ quan điểm của OOP, có sự khác biệt nào giữa lớp dẫn xuất và lớp thừa kế không? Hay đơn giản là thuật ngữ?OOP Sự khác biệt giữa một lớp dẫn xuất và một lớp kế thừa?
Trả lời
Khi sử dụng thừa kế, lớp kế thừa được gọi là lớp cơ sở và lớp kế thừa được gọi là lớp dẫn xuất .
Thay đổi hoàn toàn văn bản của câu trả lời của bạn để phản chiếu câu trả lời của người dùng khác không được coi là hình thức tốt ở đây trên SO. –
@Neil: Ngược lại. Chỉnh sửa câu trả lời của bạn để làm cho nó là câu trả lời tốt nhất có thể là những gì SO là tất cả về. Tất nhiên là đạo văn không đẹp, nhưng tôi thấy bản chỉnh sửa dựa trên câu trả lời của bạn, không phải là bản sao trắng trợn, đặc biệt là câu trả lời của bạn là C++ cụ thể (không cần phải làm cụ thể, nhưng bạn đã làm.) –
@Vinko Có một nhu cầu cần phải làm cho nó cụ thể - các ngôn ngữ khác nhau sử dụng các thuật ngữ khác nhau. Ví dụ, một lập trình viên Smalltalk sẽ nói về superclass và subclass chứ không phải là base và origin. –
Thuật ngữ có nguồn gốc lớp được ưa thích C++ cách nói cho một lớp kế thừa từ một lớp học, mà trong C++ cách nói được gọi là một lớp cơ sở . Vì vậy, trong C++ các thuật ngữ bạn hỏi về giống hệt nhau.
Câu trả lời của Neil làm tôi bối rối một chút và vì vậy tôi đã kiểm tra một số public sources.
Xem xét một Base Class và Sub Lớp (SubClass extends BaseClass
trong thuật ngữ Java), hơn
- các Sub Lớp xuất phát Base Class (Sub Class là một lớp có nguồn gốc của Lớp cơ sở) và
- Loại phụ được thừa kế từ Lớp cơ sở (Base Class là a/the kế thừa lớp của Class Sub)
Vì vậy, theo ý kiến của tôi cả về xác định mối quan hệ tương tự giữa các lớp học nhưng từ quan điểm khác nhau.
Lớp con hạn thường không được sử dụng trong C++ - Tôi không biết về Java - và OP không hỏi về nó. –
Nhưng anh ấy không yêu cầu C + + ... –
Inheritance ngữ bởi Bertran Meyer (Object-Oriented Software Xây dựng, p.464):
công ước cơ bản và thuật ngữ
Các từ ngữ dưới đây sẽ hữu ích ngoài việc “thừa kế” và "cha mẹ".
Một hậu duệ của một lớp C là bất kỳ lớp được thừa kế trực tiếp hoặc gián tiếp từ C, bao gồm C riêng của mình. (Chính thức: hoặc C hay, đệ quy, một hậu duệ của một người thừa kế của C.) Một tổ tiên của C là một lớp Một mà C là một hậu duệ của Một .
Trong tài liệu, bạn cũng sẽ gặp phải cụm từ "phân lớp" và "siêu lớp", nhưng chúng tôi sẽ tránh xa chúng vì chúng không rõ ràng; đôi khi "phân lớp" có nghĩa là số người thừa kế (hậu duệ trực tiếp), đôi khi nó được sử dụng theo nghĩa tổng quát hơn của con cháu thích hợp và không phải lúc nào cũng rõ ràng. Ngoài ra, chúng tôi sẽ thấy rằng "tập hợp con" ý nghĩa của từ này không phải lúc nào cũng hợp lý.
có lẽ thú vị, nếu bạn ghi đè một phương pháp, trong Delphi bạn viết:
inherited; // so "inherited" is the base class
thay vì
base.BaseImplementation(); // C#
- 1. Chế nhạo một lớp kế thừa từ một lớp khác
- 2. Sự khác biệt giữa lớp singleton và lớp tĩnh?
- 3. Sự khác biệt giữa một lớp mẫu và một mẫu lớp là gì?
- 4. Thuật ngữ: Sự khác biệt giữa một lớp học và một thành phần là gì?
- 5. Sự khác biệt giữa lớp cha và lớp học tối thiểu
- 6. Sự khác biệt giữa hai trường hợp cùng một lớp
- 7. OOP trong Java: Lớp thừa kế với phương pháp chuỗi
- 8. Sự khác biệt giữa UIViewController và UITableViewController
- 9. Sự khác biệt giữa đường dẫn lớp và tùy chọn đường dẫn của javac
- 10. Sự khác biệt giữa Giao diện, lớp trừu tượng, lớp niêm phong, lớp tĩnh và một phần lớp trong C#?
- 11. Làm thế nào để có được đường dẫn của một lớp dẫn xuất từ một phương thức kế thừa?
- 12. Sự khác biệt giữa getUsableSpace và getUnallocatedSpace của lớp FileStore
- 13. Sự khác biệt giữa các lớp và không gian tên?
- 14. Sự khác biệt giữa việc khởi tạo một lớp và khởi tạo một đối tượng?
- 15. tại sao lớp dẫn xuất kế thừa các thành viên riêng của lớp cơ sở?
- 16. Sự khác biệt giữa addSubview và insertSubview trong lớp UIView
- 17. Sự khác biệt giữa "Lớp" và "Cấp" là gì?
- 18. Asp.NET MVC - Sự khác biệt giữa ViewPage và lớp WebViewPage
- 19. Sự khác biệt giữa các lớp java.rmi.registry.Registry và java.rmi.Naming
- 20. Sự khác biệt giữa các lớp System.StringComparer và System.StringComparison?
- 21. C# Thừa kế lớp
- 22. Tạo một lớp không được thừa kế
- 23. thừa kế kim cương python và sử dụng super() trong bố mẹ của lớp dẫn xuất
- 24. Trong C#, một lớp có thể kế thừa từ một lớp khác và một giao diện không?
- 25. Sự khác biệt giữa Fragment Và FragmentActivity
- 26. Thừa kế lớp UIViewController và XIB
- 27. asp.net: các lớp học một phần và thừa kế
- 28. Set lớp thừa kế sau delcaration lớp HOẶC thiết lập lớp thừa kế trên lớp const_set
- 29. tạo lớp tự động, với thừa kế và bộ truy xuất đặc biệt
- 30. Khai báo mẫu lớp kế thừa từ một mẫu lớp khác trong C++
Bản sao y của câu hỏi trước của bạn. –
@David - cảm ơn Ok, tôi đã xóa câu hỏi khác, phải gửi hai lần .... –