[Java Core] Đa Hình Trong Java OOP - Code Lean

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
Đa hình Java trong OOP Chúng tôi có một lớp cha, 'Account' có chức năng gửi và rút tiền. Tài khoản có 2 lớp con Hoạt động gửi và rút tiền là như nhau đối với Tài khoản tiết kiệm và Kiểm tra. Vì vậy, các phương thức được kế thừa từ lớp Tài khoản sẽ hoạt động. Kế thừa và đa hình Java 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 Kế thừa và đa hình Java 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. Kế thừa và đa hình Java 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. Kế thừa và đa hình Java

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.
Khái niệm về tính đa hình Java và đa hình Java 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ơ đồ). Khái niệm về tính đa hình Java và đa hình Java 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 ();
Tags Java Programming

You might like

Hiện thêm

Post a Comment

Đăng nhận xét

Mới hơn Cũ hơn

Follow 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:08

Tìm Phủ Tối thiểu của một Hàm

12:29

Xác định khóa, Tìm phủ tối thiểu, Chuẩn hóa dữ liệu

16:36

Big O: Cách tính độ phức tạp của thời gian và không gian

16:37

Bắ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:32

Hướ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:27

Biểu mẫu liên hệ

Từ khóa » Hình ảnh Java Core