Polymorphism là gì

  -  

Đa hình trong java (Polymorphism) là 1 khái niệm mà chúng ta cũng có thể thực hiện nay một hành động bằng rất nhiều cách thức khác nhau. Polymorphism được cấu tạo từ 2 tự Hy Lạp: poly cùng morphs. Trong những số đó "poly" có nghĩa là nhiều với "morphs" tức là hình thể. Vậy polymorphism có nghĩa là nhiều hình thể.

có hai hình dạng của nhiều hình trong java, chính là đa hình lúc biên dịch (compile) cùng đa hình lúc thực thi (runtime). Bạn có thể thực hiện nhiều hình vào java bằng cách nạp ck phương thức và ghi đè phương thức.

nếu khách hàng nạp chồng phương thức static trong java, đó là 1 trong ví dụ về đa hình cơ hội biên dịch. Trong bài bác này, bọn họ tập trung vào đa hình lúc runtime vào java.




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

Đa hình dịp runtime vào java

Đa hình thời gian runtime là quá trình gọi cách thức đã được ghi đè trong thời hạn thực thi chương trình. Trong quy trình này, một cách tiến hành được ghi đè được gọi thông qua biến tham chiếu của một tấm cha. Trước khi tò mò về nhiều hình trên runtime, họ cùng tìm hiểu về Upcasting.


Upcasting là gì?

Khi trở nên tham chiếu của lớp phụ vương tham chiếu tới đối tượng người dùng của lớp con, thì sẽ là Upcasting. Ví dụ:


lấy một ví dụ về nhiều hình lúc runtime vào java

lấy ví dụ 1:

bọn họ tạo nhị lớp xe đạp và Splendar. Lớp Splendar thừa kế lớp xe đạp và ghi đè cách tiến hành run() của nó. Bọn họ gọi phương thức run bởi phát triển thành tham chiếu của lớp cha. Lúc nó tham chiếu tới đối tượng người tiêu dùng của lớp bé và thủ tục lớp bé ghi đè cách thức của lớp cha, thủ tục lớp bé được điện thoại tư vấn lúc runtime.

Khi việc gọi phương thức được đưa ra quyết định bởi JVM chứ chưa phải Compiler, chính vì như vậy đó là đa hình cơ hội runtime.




Xem thêm: Hướng Dẫn Kích Hoạt Iphone 5S Không Cần Sim Nhà Mạng Nhanh Đơn Giản

class bike void run() System.out.println("running"); public class Splender extends bike void run() System.out.println("running safely with 60km"); public static void main(String args<>) bike b = new Splender();// upcasting b.run();
lấy ví dụ như 2: Bank:

giả sử Bank là 1 trong những lớp cung cấp tính năng xem thông tin phần trăm lãi suất. Tuy vậy mỗi ngân hàng có một lãi xuất khác nhau, ví dụ các ngân mặt hàng SBI, ICICI và AXIS có tỷ lệ lãi suất theo thứ tự là 8%, 7% và 9%.

*

class ngân hàng int getRateOfInterest() return 0; class SBI extends ngân hàng int getRateOfInterest() return 8; class ICICI extends bank int getRateOfInterest() return 7; class AXIS extends ngân hàng int getRateOfInterest() return 9; public class Test2 public static void main(String args<>) bank b; b = new SBI(); System.out.println("SBI Rate of Interest: " + b.getRateOfInterest()); b = new ICICI(); System.out.println("ICICI Rate of Interest: " + b.getRateOfInterest()); b = new AXIS(); System.out.println("AXIS Rate of Interest: " + b.getRateOfInterest());


Xem thêm: Advocacy Là Gì - Nghĩa Của Từ Advocacy

*