Dùng đa Kế Thừa Trong Java Như Thế Nào? - Programming Trang chủ » Java đa Kế Thừa Hay đơn Kế Thừa » Dùng đa Kế Thừa Trong Java Như Thế Nào? - Programming Có thể bạn quan tâm Java đa Luồng Java đăng Ký Kinh Doanh Java Dịch Tiếng Việt Là Gì Java Ee Là Gì Javafx Là Gì Dùng đa kế thừa trong Java như thế nào? programming java TienDatPC (PC) September 16, 2015, 7:30am #1 Theo em biết thì C++ là ngôn ngữ hỗ trợ đa kế thừa. Tuy Java không có tính này nhưng vẫn hỗ trợ phần nào. Mọi người cho em hỏi kỹ hơn về đa kế thừa trong java được không ạ? Ta có thể dùng nó khi nào? Dùng như thế nào? Nó có ưu nhược điểm gì? Tại sao chỉ dùng đơn kế thừa mà lại hạn chế đa kế thừa? Cho em xin cái ví dụ cụ thể ạ? Có phải extends thì kế thừa đơn còn implement có thể đa kế thừa không ạ? Em xin cảm ơn 2 Likes Thừa kế trong JAVA CuongNguyen (Cương Nguyễn) September 16, 2015, 7:50am #2 Java không hỗ trợ đa kế thừa nhé. Đa kế thừa sẽ dẫn đến “diamond problem”. Ví dụ: nếu có đa kế thừa, 1 class A kế thừa từ B và C, giả sử B và C đều có chung 1 hàm giống hệt nhau. Vậy từ A gọi hàm đó sẽ gọi hàm của B hay C?. để giải quyết vấn đề này có nhiều cách, 1 trong số đó là bỏ đa kế thừa đi như Java ^^. Java hỗ trợ 1 phần nào đa kế thừa bằng các Interface. Interface thê hiện Đối tượng đó có thể làm những gì? còn extends 1 class là Đối tượng đó là gì. Điều này cũng đúng như trong thưc tiễn, Bạn chỉ có thể là con người chứ không thể vừa là con Người, vừa là con Mèo được. Còn bạn có thể có nhiều khả năng như trèo cây giống con Mèo, bơi giống con Cá… 11 Likes TienDatPC (PC) September 16, 2015, 9:02am #3 anh có thể giúp em hiểu kỹ hơn về Interface không ạ? Tức là nó giống 1 class tuy nhiên không có thuộc tính mà chỉ có các phương thức ạ? hay là thế nào vậy? 1 Like ancomtrua22 September 16, 2015, 12:08pm #4 Để hiểu hơn về interface, bạn hãy tập hiểu: Hàm gồm 2 phần là tên hàm (declaration) và thân hàm (definition). Implement ám chỉ việc bạn phải viết definition cho nó. 1 interface sẽ chỉ chứa declaration, chứ ko có definition. 1 class implements 1 interface thì class đó phải viết definition cho hàm trong interface đó. P/s: làm độ 3 bài tập về interface là ngộ ra ngay ý mà. 5 Likes GDGHN_AndroidTeam (Google Developer Group Hà Nội Android Team) September 17, 2015, 4:39am #5 TienDatPC: implement Bạn đã biết đến implement thì bạn đã biết gì về interface rồi? Bạn thử nói ra xem sai gì mọi người góp ý. 1 Like TienDatPC (PC) September 18, 2015, 3:59pm #7 Phải chăng các Interface chỉ là 1 khuôn mẫu. trong đó các hàm chỉ có tên hàm mà hoàn toàn không có thân hàm. Tức hàm đó không có câu lệnh gì. Chỉ khi ta imlement nó thì nó được ghi đè và ta có thể làm bất cứ điều gì phải không ạ? Nếu đúng là nv thì e thấy thật phiền phức. Tại sao t không tạo các method luôn mà lại phải tạo cái tên mà không định nghĩa cho nó. Nhỡ đâu ta k dùng mà vẫn phải Override. Thật là em rất thắc mắc!!! 1 Like ancomtrua22 September 20, 2015, 6:33am #8 TienDatPC: Phải chăng các Interface chỉ là 1 khuôn mẫu. trong đó các hàm chỉ có tên hàm mà hoàn toàn không có thân hàm. Tức hàm đó không có câu lệnh gì. Chỉ khi ta imlement nó thì nó được ghi đè và ta có thể làm bất cứ điều gì phải không ạ? Đúng rồi! TienDatPC: Nếu đúng là nv thì e thấy thật phiền phức. Tại sao t không tạo các method luôn mà lại phải tạo cái tên mà không định nghĩa cho nó. Nhỡ đâu ta k dùng mà vẫn phải Override. Thật là em rất thắc mắc!!! Không dùng thì sẽ không implements interface đó, chứ không phải Override. C++ cho phép đa kế thừa, nhưng lại gây ra “Diamon problem”. James Gosling đã vứt đa kế thừa đi để giải quyết, nhưng bổ sung thêm Interface để giữ lại cái hay của tính đa hình và viết ra Java. Ví dụ thì bạn xem bài số #9, #17 và #18 trong link [sau][1] Interface (hay gián tiếp nói đến sự đa hình) có ứng dụng lớn trong việc thiết kế các thư viện lập trình. Vì người viết thư viện chỉ quan tâm cung cấp 1 chức năng như thế nào, mà không cần quan tâm người dùng thư viện dùng chức năng đó làm gì. (Ví dụ: thư viện game cung cấp chức năng nhận nút bấm A, nhưng không quan tâm 1 game abc gì đó nhận nút bấm A đó để chém hay nhảy gì cả). [1]: http://congdongjava.com/forum/threads/thắc-mắc-interface-trong-java.3222/ 5 Likes TienDatPC (PC) September 20, 2015, 9:07am #9 Cảm ơn bác, có lẽ em hiểu hơn về Interface rồi ạ 1 Like Toan_Tran4 (Toản Trần) August 14, 2019, 3:33pm #10 Kể cả C# cũng như Java không còn kiểu đa kế thừa như C++ nữa. Bạn muốn lập trình hướng đối tượng sâu thì nên tìm hiểu về interface nhé 1 Like noname00 (HK boy) split this topic June 5, 2021, 10:23pm #11 3 posts were merged into an existing topic: Topic lưu trữ các post off-topic - version 3 DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Java đa Kế Thừa Hay đơn Kế Thừa [Đa Kế Thừa Trong Java] - Tại Sao Không? - Viblo 5 Phút Tìm Hiểu Các Loại Kế Thừa Trong Java Tính Kế Thừa Trong Java - Học Java Cơ Bản đến Nâng Cao - VietTuts Tại Sao Java Không Hỗ Trợ đa Kế Thừa? Tại Sao Java Không Hỗ Trợ đa Kế Thừa Trong Lập Trình Hướng đối Tượng? Kế Thừa Trong Java - Techacademy Loại Kế Thừa Trong Java - TutorialCup Vì Sao Java Không Hỗ Trợ đa Kế Thừa? Kế Thừa & Đa Kế Thừa Trong OOP | Facebook Tính Kế Thừa (inheritance) Trong Java - Góc Học IT [Java Core] Kế Thừa Trong Java OOP - Code Lean Tính Kế Thừa Trong Java - Từ Khóa Extends Và Implements Trong Java Sự Khác Biệt Giữa Tính Kế Thừa Và Tính đa Hình Java Có Hỗ Trợ đa Kế Thừa? - CodeLearn