Định nghĩa:

Tính đa hình (Polymorphism) là một đối tượng có thể thực hiện một tác vụ theo nhiều cách khác nhau.

Bạn đang xem: Polymorphism là gì

Công dụng:

Kỹ thuật đa hình trong các ngôn ngữ hướng đối tượng giúp cho chúng ta gia tăng khả năng tái sử dụng các đoạn mã (code) được viết một cách tổng quát và có thể thay đổi các ứng xử một cách linh hoạt tùy theo đối tượng.

Cách sử dụng:

Trong lập trình sẽ có 2 kỹ thuật để chúng ta có thể sử tính đa hình đó là Override và Overloading.

Override (Ghi đè):

Ví dụ: Trong một công ty sẽ có các nhân viên như lập trình viên, kế toán, nhân viên sale. Mỗi nhân viên sẽ có những cách tính lương khác nhau.

Dựa trên ví dụ, chúng ta sẽ có class Staff đại diện cho nhân viên và có thuộc tính salary là mức lương cơ bản.

Xem thêm: Shrink Volume Là Gì ? Hướng Dẫn Chia Và Gộp Ổ Cứng Trên Windows

class Staff { public int salary = 3; public int countSalary() { return this.salary; }}

Tiếp theo chúng ta có class Developer kế thừa class Staff và sẽ ghi đè lên phương thức tính lương.

class Developer extends Staff { public int rank = 4;
Override public int countSalary() { return this.salary * this.rank; }}

Nhân viên kế toán có thêm trợ cấp nên mỗi lần tính lương sẽ được cộng thêm. Nên ta có class Accountant khác với class Developer.

class Accountant extends Staff { public int rank = 3; public int allowance = 3;
Override public int countSalary() { return (this.salary * this.rank) + this.allowance; }}

Overloading (Nạp chồng):

Quay lại ví dụ trên, trong quá trình làm việc, sẽ có lúc lập trình viên phải tăng ca, vì vậy khoản tiền tăng ca này sẽ được cộng thêm vào lương. Nếu không tăng ca, thì lương của lập trình viên sẽ được tính theo công thức như bình thường.

class Developer extends Staff { public int rank = 4;
Overload public int countSalary() { return this.salary * this.rank; }
Overload public int countSalary(int overtime_money) { return (this.salary * this.rank) + overtime_money; }}

public class Demo { public static void main(String<> args) { Developer developer = new Developer(); System.out.println("Basic salary:" + developer.countSalary()); System.out.println("Salary with overtime money: " + developer.countSalary(2)); }}

Output:

Basic salary: 12Salary with overtime money: 14

Khi chạy chương trình chúng ta sẽ thấy dựa theo tham số đầu vào chương trình sẽ điều hướng tới phương thức tương ứng.


Có thể bạn quan tâm



Chuyên mục giới thiệu nhân viên – Bạn Trương Thị Phương Quỳnh



No.2 – Vai trò của Corporate team tại MEVN



No.1 – Giới thiệu Corporate Team



Kỷ niệm 1 năm làm việc – Bạn Trần Văn Nam Sơn



Kỷ niệm 1 năm làm việc – Bạn Lê Mai Quyền


WORK FROM HOME THEO PHONG CÁCH MEVN!


Kỷ niệm 1 năm làm việc – Bạn Nguyễn Thanh Tùng


Kỷ niệm 1 năm làm việc – Bạn Đào Ngọc Thành


: Thực thi “Tìm Kiếm ISSUE” 


Chuyên mục giới thiệu nhân viên – Trần Phụng Quy


RECRUITMENT


SOFTWARE TESTER – TIẾNG NHẬT N2


Tuyển IT Communicator


Tuyển Project Manager


Tuyển Junior Engineer


Tuyển Senior Full-Stack Developer


Xem tất cả >>
Đồng hành cùng xemlienminh360.net Việt Nam
Vị trí ứng tuyển *Senior EngineerMiddle EngineerJunior EngineerFresher/InternProject ManagerJapanese Software TesterBridge SEIT CommunicatorHR Department
GỬI THÔNG TIN

CATEGORIES


FEATURED POST


TOP VIEWED POST


LINKS


*
BLOG
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *