Tính Đa Hình Là Gì

  -  

1. Tính nhiều hình (polymorphism) vào Java là gì?

Tính đa hình (polymorphism) phát âm đơn giản dễ dàng là các đối tượng người sử dụng, những phương thức kiểu như nhau hoàn toàn có thể tất cả các hành vi không giống nhau tùy từng từng tình huống không giống nhau.class Polygon //cách làm render của lớp Polygon public void render() System.out.println("Rendering Polygon..."); class Square extends Polygon //ghi đè cổ cách tiến hành render
Override public void render() System.out.println("Rendering Square..."); class Circle extends Polygon //ghi đtrần phương thức render
Override public void render() System.out.println("Rendering Circle..."); class Main public static void main(String<> args) // create an object of Square Square s1 = new Square(); s1.render(); // create an object of Circle Circle c1 = new Circle(); c1.render(); Kết quảRendering Square...Rendering Circle...Ở ví dụ trên, lớp Polygon gồm 2 lớp nhỏ là Square & Circle. Chúng đều sở hữu hàm render() tuy thế hàm này thực thi khác biệt vào từng lớp. Đó là biểu lộ của tính nhiều hình (polymorphism).

Bạn đang xem: Tính đa hình là gì

2. Tại sao thực hiện tính đa hình (polymorphism)

Tính nhiều hình (polymorphism) vào Java cho phép chúng ta tạo ra hầu hết mã code đồng nhất. Lấy ví dụ ở vị trí 1, chúng ta cũng có thể tạo thành những hàm render cùng với các tên không giống nhau nhỏng renderSquare()renderCircle() mang đến từng lớp Square với Circle.Chương thơm trình của bạn cũng trở thành chuyển động xuất sắc thôi mà lại bài toán tạo thành những tên khác biệt cho 1 hàm tất cả chức năng giống như nhau thì đã làm code không đồng hóa, lướt thướt, to kềnh.Tính nhiều hình cho phép họ tạo nên một hàm thương hiệu là render() tốt nhất cơ mà đang triển khai khác biệt cùng với từng lớp khác biệt.Trong Java, chúng ta có thể giành được tính nhiều hình (polymorphism) với nạp ông xã thủ tục (method overloading), ghi đtrằn phương thức (method overriding).Lưu ý: Trong Java không cung ứng xây dựng viên tự có mang nạp ck tân oán tử (operator overloading) như trong C++.

3. Chuyển thay đổi hình dạng tài liệu đối tượng

Kiểu tài liệu tđắm đuối chiếu (những lớp) hoàn toàn có thể được biến đổi hình trạng khi dạng hình tài liệu tđắm đuối chiếu (lớp) tương thích, tức là nằm tại cùng một cây phân cung cấp thừa kế.

Xem thêm: Tìm Hiểu Phân Lân Là Gì ? Cách Sử Dụng Phân Lân Đúng Cách Phân Lân Là Gì


*

Có nhì giải pháp biến đổi là Up-casting cùng Down-casting.Up-casting– Đi lên trên cây phân cấp thừa kế. Up-casting là năng lực đánh giá đối tượng người dùng ở trong lớp dẫn xuất nhỏng là 1 trong đối tượng ở trong lớp đại lý.– Tự đụng biến đổi kiểu.Ví dụ:
*

class Person String name; Date birthday; public void setName(String name) this.name = name; public void setBirthday(Date birthday) this.birthday = birthday; public String getDetails() String detail = ""; detail = "Name: " + name + ", birthday: " + new SimpleDateFormat("MM-dd-yyyy").format(birthday); return detail; class Employee extends Person{ double salary; public void setSalary(double salary) this.salary = salary;

4. Toán thù tử instanceof

Toán tử instanceof trong Java được sử dụng nhằm kiểm tra một đối tượng người tiêu dùng có phải là miêu tả của một mẫu mã dữ liệu (lớp) làm sao đó hay là không.

Xem thêm: Trò Chơi Game Đập Bong Bóng Ma Sieu Kinh Di, Trò Chơi Bóp Bong Bóng

instanceof trong Java được gọi là toán thù tử đối chiếu đẳng cấp. Nó trả về quý hiếm booleantrue hoặc false. Nếu bạn cần sử dụng tân oán tử instanceof với ngẫu nhiên biến nào cơ mà có mức giá trị null thì hiệu quả trả về đang là false. Ví dụ:public class Simple public static void main(String args<>) Simple s = new Simple();System.out.println(s instanceof Simple);// trueMột đối tượng gồm giao diện của lớp nhỏ thì cũng có thể có dạng hình của lớp thân phụ.Ví dụ: Nếu Dog kế thừa từ Animal thì đối tượng người sử dụng của Dog có thể ttê mê chiếu tới mức nhì lớp DogAnimal.class Animal public class Dog extends Animal // Dog inherits Animalpublic static void main(String args<>) Dog dog = new Dog();System.out.println(dog instanceof Animal);// trueNếu sử dụng toán thù tử instanceof với đổi mới gồm phong cách ngẫu nhiên có mức giá trị null thì quý hiếm trả về luôn luôn là null. Ví dụ:
public class Dog public static void main(String args<>) Dog d = null;System.out.println(d instanceof Dog);// false
Bài trước cùng bài xích sau trong môn học>" data-wpel-link="internal">Tính gói gọn (encapsulation) trong Java >>