[Java Core] Đa Hình Trong Java OOP - Code Lean
Có thể bạn quan tâm
Bài đăng nổi bật
Học Ngành Gì KHÔNG THẤT NGHIỆP
13:22 Trang chủJava [Java Core] Đa hình trong Java OOP 16:56 0 Nhận xét
Đa hình là gì? Đa hình là một khái niệm OOP trong đó một tên có thể có nhiều dạng. Ví dụ, bạn có một điện thoại thông minh để liên lạc. Chế độ liên lạc bạn chọn có thể là bất cứ điều gì. Nó có thể là một cuộc gọi, tin nhắn văn bản, tin nhắn hình ảnh, thư, v.v ... Vì vậy, mục tiêu phổ biến là giao tiếp, nhưng cách tiếp cận của họ thì khác. Điều này được gọi là đa hình. Trong hướng dẫn này, bạn sẽ học- - Đa hình là gì?
- Đa hình Java trong OOP với ví dụ
- Phương pháp ghi đè
- Sự khác biệt giữa quá tải và ghi đè
- Đa hình động là gì?
- Siêu từ khóa
- Sự khác biệt giữa đa hình tĩnh và động
Thay đổi trong yêu cầu phần mềm Có một sự thay đổi trong đặc tả yêu cầu, một cái gì đó rất phổ biến trong ngành công nghiệp phần mềm. Bạn phải thêm tài khoản Ngân hàng đặc quyền chức năng với Cơ sở thấu chi. Đối với một nền tảng, thấu chi là một cơ sở nơi bạn có thể rút một số tiền nhiều hơn số dư có sẵn trong tài khoản của bạn. Vì vậy, phương thức rút tiền cho các nhu cầu đặc quyền để thực hiện trước đó. Nhưng bạn không thay đổi đoạn mã được kiểm tra trong tài khoản Tiết kiệm và Kiểm tra. Đây là lợi thế của OOPS
Bước 1) Như vậy khi phương thức "withdrawn" để lưu tài khoản được gọi là phương thức từ lớp tài khoản mẹ được thực thi.
Bước 2) Nhưng khi phương thức "Rút tiền" cho tài khoản đặc quyền (cơ sở thấu chi) được gọi là phương thức rút tiền được xác định trong lớp đặc quyền được thực thi. Đây là đa hình.
Phương pháp ghi đè
Phương thức ghi đè là định nghĩa lại một phương thức siêu lớp trong một lớp con. Quy tắc ghi đè phương thức- Chữ ký phương thức tức là tên phương thức, danh sách tham số và kiểu trả về phải khớp chính xác.
- Phương thức ghi đè có thể mở rộng khả năng truy cập nhưng không thu hẹp nó, tức là nếu nó là riêng tư trong lớp cơ sở, lớp con có thể công khai nhưng không phải ngược lại.
Thí dụ class Doctor{ public void treatPatient(){ // treatPatient method } class Surgeon extends Doctor{ public void treatPatient(){ // treatPatient method } } Class run{ public static void main (String args[]){ Doctor doctorObj = new Doctor() // treatPatient method in class Doctor will be executed doctorObj.treatPatient(); Surgeon surgeonObj = new Surgeon(); // treatPatient method in class Surgeon will be executed surgeonObj.treatPatient(); } } Sự khác biệt giữa Overloading(nạp chồng) và Overriding (ghi đè)
| Overloading | Overriding |
|---|---|
| Quá tải phương thức là trong cùng một lớp, trong đó có nhiều hơn một phương thức có cùng tên nhưng chữ ký khác nhau. | Ghi đè phương thức là khi một trong các phương thức trong siêu lớp được định nghĩa lại trong lớp con. Trong trường hợp này, chữ ký của phương thức vẫn giữ nguyên. |
| Vd void sum (int a, int b); void sum (int a, int b, int c); void sum (float a, double b); | Vd class X{ public int sum(){ // some code } } class Y extends X{ public int sum(){ //overridden method //signature is same } } |
Đa hình động là gì?
Đa hình động (Dynamic Polymorphism) là cơ chế theo đó nhiều phương thức có thể được định nghĩa với cùng tên và chữ ký trong lớp cha và lớp con. Cuộc gọi đến một phương thức ghi đè được giải quyết trong thời gian chạy.Ví dụ đa hình động:
Một biến tham chiếu của siêu lớp có thể tham chiếu đến một đối tượng lớp phụ Doctor obj = new Surgeon(); Xem xét tuyên bố obj.treatPatient (); Ở đây, biến tham chiếu "obj" là của lớp cha, nhưng đối tượng mà nó trỏ đến là của lớp con (như trong sơ đồ).
obj.treatPatient () sẽ thực thi phương thức TreatPatient () của lớp con - Bác sĩ phẫu thuật Nếu một tham chiếu lớp cơ sở được sử dụng để gọi một phương thức, thì phương thức được gọi được quyết định bởi JVM, tùy thuộc vào đối tượng mà tham chiếu được trỏ đến Ví dụ, mặc dù obj là một tham chiếu đến Doctor, nó gọi phương thức của Surgeon, vì nó trỏ đến một đối tượng Surgeon Điều này được quyết định trong thời gian chạy và do đó được gọi là đa hình động hoặc thời gian chạy Từ khoá Super
Điều gì xảy ra nếu phương thức TreatPatient trong lớp Surgeon muốn thực thi chức năng được xác định trong lớp Doctor và sau đó thực hiện chức năng cụ thể của riêng nó? Trong trường hợp này, từ khóa supercó thể được sử dụng để truy cập các phương thức của lớp cha từ lớp con. Phương thức TreatPatient trong lớp Surgeon có thể được viết là: treatPatient(){ super.treatPatient(); //add code specific to Surgeon } Từ khóa super có thể được sử dụng để truy cập bất kỳ thành viên dữ liệu hoặc phương thức nào của siêu lớp trong lớp con. Ví dụ: -Để tìm hiểu Kế thừa, Đa hình & siêu từ khóa Bước 1) Sao chép mã sau vào Editor public class Test{ public static void main(String args[]){ X x= new X(); Y y = new Y(); y.m2(); //x.m1(); //y.m1(); //x = y;// parent pointing to object of child //x.m1() ; //y.a=10; } } class X{ private int a; int b; public void m1(){ System.out.println("This is method m1 of class X"); } } class Y extends X{ int c; // new instance variable of class Y public void m1(){ System.out.println("This is method m1 of class Y"); } public void m2(){ super.m1(); System.out.println("This is method m2 of class Y"); } } Bước 2) Lưu, biên dịch và chạy mã. Quan sát đầu ra. Bước 3) Dòng không ghi chú # 6-9. Lưu, biên dịch và chạy mã. Quan sát đầu ra. Bước 4) Dòng không ghi chú # 10. Lưu và biên dịch mã. Bước 5) Lỗi =? Điều này là do lớp phụ không thể truy cập các thành viên tư nhân của siêu hạng.Sự khác biệt giữa đa hình tĩnh và động
| Đa hình tĩnh | Đa hình động |
|---|---|
| Nó liên quan đến quá tải phương pháp. | Nó liên quan đến phương pháp ghi đè. |
| Lỗi, nếu có, được giải quyết tại thời điểm biên dịch. Vì mã không được thực thi trong quá trình biên dịch, do đó tên tĩnh. Vd void sum (int a, int b); void sum (float a, double b); int tổng (int a, int b); // trình biên dịch đưa ra lỗi. | Trong trường hợp một biến tham chiếu đang gọi một phương thức được ghi đè, phương thức được gọi được xác định bởi đối tượng, biến tham chiếu của bạn được trỏ đến. Điều này chỉ có thể được xác định trong thời gian chạy khi mã được thực thi, do đó tên động. Vd // tham chiếu của cha mẹ trỏ đến đối tượng con Doctor obj = new Surgeon (); // phương thức con gọi là obj.treatPatient (); |
You might like
Hiện thêmPost a Comment
Đăng nhận xét
Mới hơn Cũ hơnFollow Us
Chủ Đề Tôi Quan Tâm ;)
- .Net
- .net core
- Agile
- AI
- AngularJS
- Anroid
- AP
- Azure
- BDW
- Bootstrap
- c
- C#
- Cấu Trúc Dữ Liệu và Giải Thuật
- CodeLean
- CSDL
- CSS
- Database
- Design Pattern
- DesignThinking
- DevOps
- Docker
- Git
- github
- HTML
- Hướng_Nghiệp
- Index
- ISA
- Java
- Java1
- Java2
- JavaAdvanced
- JavaCore
- JavaScript
- JSP & Servlet
- Laravel Framework
- Laravel9
- Lập trình C
- Lập trình cho trẻ
- LINQ
- MLJ
- MySQL
- NodeJS
- OOAD
- PHP
- Programming
- Python
- QA
- React Native
- Review Sách
- Spring Boot
- Spring Framework
- SQL
- Teaching
- Test
- Thiết Kế Website
- Tools
- TypeScript
- Web Development
- WebAPI
Most Popular
Chuẩn hoá dữ liệu là gì? 1NF, 2NF, 3NF & BCNF với các ví dụ
11:57[MySQL 05] Mô hình ER là gì và ví dụ
12:08Tìm Phủ Tối thiểu của một Hàm
12:29Xác định khóa, Tìm phủ tối thiểu, Chuẩn hóa dữ liệu
16:36Big O: Cách tính độ phức tạp của thời gian và không gian
16:37Bắt đầu học Node.js với Visual Studio Code
10:07[Web API] Hướng dẫn từ cơ bản tới nâng cao Web API ASP.NET
19:21[MySQL 02] Hướng dẫn sử dụng MySQL Workbench
11:32Hướng dẫn sửa cấu hình để chạy Dự Án Laravel từ Source Code có sẵn
14:59[JSP & Servlet] Tạo Web Application JSP Servlet Sử dụng JSTL với Tomcat 10 trên IntelliJ
21:27Biểu mẫu liên hệ
Từ khóa » Hình ảnh Java Core
-
Hướng Dẫn Xử Lý ảnh Trong Java Với OpenCV - NIIT - ICT Hà Nội
-
Java Core Là Gì? Sự Khác Biệt Giữa Java Core Và Java - Ironhack
-
Hiển Thị Hình ảnh Sử Dụng Java Swing
-
Java 94. Cách Hiển Thị Hình ảnh Và Gán Icon Trong Chương Trình Java
-
Hiển Thị Hình ảnh Sử Dụng OpenCV Trong Java - Team Việt Dev
-
Hiển Thị Máy ảnh Sử Dụng OpenCV Trong Java - Team Việt Dev
-
Hình ảnh Lớp Học - Stanford - Dạy Kinh Nghiệm Lập Trình
-
Java Core Là Gì ? So Sánh Java Lõi Và Java Nâng Cao - Unica
-
Core Java 6 - SlideShare
-
[Share] Giáo Trình Core Java Của Aptech Có Hình ảnh Minh Họa
-
Java Cơ Bản - Phần 1 - Viblo
-
Biếm Họa Hình ảnh Của Bạn Bằng Java Và OpenCV