Java Bài 30: Đa Hình (Polymorphism)

Bài viết Java Bài 30: Đa Hình (Polymorphism) thuộc chủ đề về Câu Hỏi Quanh Ta đang được rất nhiều bạn lưu tâm đúng không nào !! Hôm nay, Hãy cùng https://sotaythongthai.vn/ tìm hiểu Java Bài 30: Đa Hình (Polymorphism) trong bài viết hôm nay nha !

Các bạn đang xem bài viết : “Java Bài 30: Đa Hình (Polymorphism)”

Chào mừng các bạn đã đến với bài học Java số 30. Bài học về tính đa hình (polymorphism). Đây là bài học trong chuỗi bài viết về lập trình ngôn ngữ Java của Yellow Code Books.

Bài hôm nay chúng ta sẽ nói sâu về tính Đa hình trong Java. Nghe qua đặc tính này thì có vẻ khó. Một phần vì ứng dụng của chúng không nhiều. Với cái tên nghe chẳng có cố định gì cả, như là biến hình gì gì đó. Cộng với khá ít tài liệu viết rõ về công năng này của OOP.

Vậy thì chúng ta cùng đi sâu vào bài học để xem Đa hình là gì và nó có thực sự khó không nha.

Tính Đa Hình (Polymorphism) Là Gì?

Lần này thì nghĩa tiếng Anh và tiếng Việt trong lập trình Java lại khớp với nhau. Không nhiều các từ lan man, chỉ có Đa hình, hoặc Polymorphism mà thôi.

Vậy tại sao lại Đa hình? Như bạn biết, vốn dĩ OOP là một cách thức tư duy lập trình hướng thực tế, nên hiển nhiên các khái niệm của nó cũng phải sát với các đặc điểm trong thực tế. Trong đó có Đa hình. Trong thực tế, sự Đa hình được xem như một đối tượng đặc biệt, có lúc đối tượng này mang một hình dạng (trở thành một đối tượng) nào đó, và cũng có lúc đối tượng này lại mang một hình dạng khác nữa, tùy vào từng hoàn cảnh. Sự “nhập vai” vào các hình dạng (đối tượng) khác nhau này giúp cho đối tượng Đa hình ban đầu khả năng thực hiện những hành động khác nhau của từng đối tượng chi tiết. Chẳng hạn nếu ở công ty bạn, có nhân viên nhận hai trách nhiệm khác nhau, họ vừa là nhân viên toàn thời gian ở các ngày trong tuần, nhưng làm bán thời gian ở các ngày cuối tuần. Vậy thì, để tính lương cho nhân viên này, tùy vào từng thời điểm mà hệ thống sẽ xem nhân viên đó là toàn thời gian hay bán thời gian, và phương thức tính lương của mỗi loại nhân viên sẽ thực hiện tính toán một cách kết quả nhất dựa vào từng vai trò khác nhau này. Bạn cũng hiểu ít ít về Đa hình rồi đúng không nào.

Có một điều chắc chắn rằng. Nếu như không xem hành động tính lương của nhân viên như ví dụ trên kia là Đa hình, thì chúng ta vẫn cứ xây dựng được một hệ thống tính lương hoàn chỉnh, nhưng sẽ phức tạp hơn là nếu bạn biết kiến thức về Đa hình là gì.

Và còn một ý nữa. Rằng tính Đa hình của bài hôm nay cũng là một trong các đặc tính nổi trội mà OOP đem lại đấy nha. Bạn cố gắng nắm bắt và tận dụng. Ôn lại một tí các đặc tính cốt lõi của OOP bao gồm:

– Tính Gói ghém dữ liệu (Encapsulation). Tính chất này được thể hiện qua các kiến thức về khả năng truy cập, getter/setter. – Tính Kế thừa (Inheritance). Tính chất này được thể hiện qua các kiến thức về kế thừa, overriding, overloading. – Tính Đa hình (Polymorphism). Bài hôm nay chúng ta sẽ học. – Tính Trừu tượng (Abstraction). Bài sau chúng ta sẽ học.

dùng Tính Đa Hình Như Thế Nào?

Đến đây chắc chắn bạn đã hiểu sơ bộ khái niệm Đa hình. Vậy thì trong OOP chúng ta tổ chức và dùng đặc tính Đa hình này như thế nào?

Thứ nhất, Đa hình sẽ gắn liền với kế thừa. Và, Đa hình cũng sẽ gắn liền với ghi đè phương thức (overriding) nữa. Bởi vì như trên đây có nói đó, Đa hình là nói đến một đối tượng nào đó khả năng nhập vai thành các đối tượng khác. Vậy thì để mà một đối tượng khả năng là một đối tượng nào đó, ắt hẳn nó phải là đối tượng cha. Và để đối tượng cha khả năng là một trong các đối tượng con ở từng hoàn cảnh, thì nó phải định nghĩa ra các phương thức để con của nó khả năng ghi đè. Điều này giúp hệ thống xác định được đối tượng nào và phương thức nào thực sự đang vận hành khi ứng dụng đang chạy. Nên nhiều tài liệu gọi Đa hình này là Đa hình tại runtime là vậy.

Chúng ta sẽ đến ví dụ sau cho dễ hiểu hơn. Ví dụ khá đơn giản. Lớp HinhHoc là lớp cha, hai lớp con HinhTronHinhChuNhat đều override phương thức tinhDienTich() từ cha.

Đa hình - Sơ đồ lớp ví dụ

Code của chúng cũng khá đơn giản, chúng ta loại bỏ hết tất cả các râu ria khác, chỉ tập trung vào các phương thức override mà thôi.

HinhHoc

HinhTron

HinhChuNhat

Nào, sự diệu kỳ của tính Đa hình là đây, bạn hãy chú ý vào đoạn code khai báo và dùng các phương thức được overriding trên kia như sau.

MainClass

Bạn đã thấy đó, đối tượng HinhHoc bản thân nó có một phương thức tinhDienTich(). Nhưng khác với cách dùng các đối tượng từ các bài học từ trước đến giờ, rằng mỗi khi cần đến các lớp con thực hiện việc tính diện tích, chúng ta sẽ khai báo lớp con và gọi phương thức được override ở lớp con. Thì bài hôm nay chúng ta cho phép lớp HinhHoc khả năng đóng vai trò là lớp con, bằng cách khởi tạo lại đối tượng là lớp con của nó, HinhHoc hinhHoc = new HinhTron(), rồi chính nó sẽ đóng vai là lớp con đó. Tính Đa hình là đây.

Đa hình là vậy, bạn có thấy khó không nào. Sẽ còn kiến thức có liên quan đến Đa hình nữa, như ép kiểu trong OOP chẳng hạn, mà chúng ta sẽ nói ở bài học sau.

Cảm ơn bạn đã đọc các bài viết của Yellow Code Books. Bạn hãy đánh giá 5 sao nếu thấy thích bài viết, hãy comment bên dưới nếu có thắc mắc, hãy để lại địa chỉ email của bạn để nhận được thông báo mới nhất khi có bài viết mới, và nhớ chia sẻ các bài viết của Yellow Code Books đến nhiều người khác nữa nha.

Bài Kế Tiếp

Chúng ta đã biết đến ép kiểu đối với kiểu dữ liệu nguyên thủy rồi đúng không nào. Vậy thì ép kiểu với các đối tượng OOP có gì khác không. Bài sau chúng ta cùng tìm hiểu nha.

Bạn thấy bài viết thế nào?

Các câu hỏi về Java Bài 30: Đa Hình (Polymorphism)

Team Sổ Tay Thông Thái mà chi tiết là Mỹ Chi đã biên soạn bài viết dựa trên tư liệu sẵn có và kiến thức từ Internet. Dĩ nhiên tụi mình biết có nhiều câu hỏi và nội dung chưa thỏa mãn được bắt buộc của các bạn.

Thế nhưng với tinh thần tiếp thu và nâng cao hơn, Mình luôn đón nhận tất cả các ý kiến khen chê từ các bạn & Quý đọc giả cho bài viêt Java Bài 30: Đa Hình (Polymorphism)

Nếu có bắt kỳ câu hỏi thắc mắt nào vê Java Bài 30: Đa Hình (Polymorphism) hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3 Chốt lại nhen <3 Bài viết Java Bài 30: Đa Hình (Polymorphism) ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Java Bài 30: Đa Hình (Polymorphism) Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết Java Bài 30: Đa Hình (Polymorphism) rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!

Các Hình Ảnh Về Java Bài 30: Đa Hình (Polymorphism)

Java Bài 30: Đa Hình (Polymorphism)

Các từ khóa tìm kiếm cho bài viết #Java #Bài #Đa #Hình #Polymorphism

Tham khảo thêm kiến thức về Java Bài 30: Đa Hình (Polymorphism) tại WikiPedia

Bạn hãy tra cứu thông tin chi tiết về Java Bài 30: Đa Hình (Polymorphism) từ trang Wikipedia tiếng Việt.◄

Tham Gia Cộng Đồng Tại

💝 Nguồn Tin tại: https://sotaythongthai.vn/

💝 Xem Thêm Câu Hỏi Quanh Ta tại : https://mangraovat.edu.vn/hoi-dap/

Related Posts

About The Author

Add Comment