Hàm ảo trong Java là gì?



Bài viết này đề cập đến khái niệm hàm ảo trong java với các ứng dụng của nó trong tính đa hình và gọi hàm trong thời gian chạy với các ví dụ.

Java là một hỗ trợ các khái niệm như đa hình, kế thừa, trừu tượng, v.v. Các khái niệm OOP này xoay quanh các lớp học , các đối tượng , và các chức năng thành viên. Hàm ảo là một trong những khái niệm như vậy giúp đa hình thời gian chạy. Trong blog này, chúng ta sẽ tìm hiểu về chức năng ảo trong . Các chủ đề sau đây được thảo luận trong bài viết này.

Hàm ảo trong Java là gì?

Hành vi của một hàm ảo có thể ghi đè với hàm lớp kế thừa có cùng tên. Về cơ bản nó được định nghĩa trong lớp cơ sở và được ghi đè trong lớp kế thừa.





sự khác biệt giữa css và css3 là gì

Hàm ảo trong Java dự kiến ​​sẽ được định nghĩa trong . Chúng ta có thể gọi hàm ảo bằng cách tham chiếu đến đối tượng của lớp dẫn xuất bằng cách sử dụng tham chiếu hoặc con trỏ của lớp cơ sở.

Mọi phương thức không tĩnh trong Java theo mặc định là một phương thức ảo. Java không có từ khóa ảo như C ++ , nhưng chúng ta có thể định nghĩa chúng và sử dụng chúng cho các khái niệm như đa hình thời gian chạy.



Ví dụ về hàm ảo

Hãy xem một ví dụ để hiểu cách chúng ta có thể sử dụng các hàm ảo trong Java.

class Vehicle {void make () {System.out.println ('heavy duty')}} public class Xe tải mở rộng Xe {void make () {System.out.println ('Xe chuyên chở hạng nặng')} public static void main (String args []) {Xe ob1 = Xe tải mới () ob1.make ()}}
 Đầu ra: Phương tiện vận tải hạng nặng

Mọi phương thức không tĩnh trong Java đều là một hàm ảo ngoại trừ sau cùngphương pháp riêng tư . Các phương thức không thể sử dụng cho đa hình không được coi là một hàm ảo.

ĐẾN không được coi là một hàm ảo vì một phương thức tĩnh được liên kết với chính lớp đó. Vì vậy, chúng ta không thể gọi phương thức tĩnh từ tên đối tượng hoặc lớp cho . Ngay cả khi chúng ta ghi đè phương thức tĩnh, nó không phù hợp với khái niệm đa hình.



Chức năng ảo với giao diện

Tất cả các giao diện Java đều là ảo, chúng dựa vào các lớp thực thi để cung cấp các triển khai phương thức. Mã để thực thi được chọn tại thời điểm chạy. Đây là một ví dụ đơn giản để hiểu rõ hơn.

interface Car {void applyBrakes ()} interface Audi triển khai Car {void applyBrakes () {System.out.println ('break Applied')}}

Ở đây applyBreaks () là ảo vì các hàm trong giao diện được thiết kế để ghi đè.

Chức năng ảo thuần túy

Hàm ảo thuần túy là một hàm ảo mà chúng tôi không có triển khai. Một phương thức trừu tượng trong Java có thể được coi là một hàm ảo thuần túy. Hãy lấy một ví dụ để hiểu rõ hơn điều này.

trừu tượng class Dog {final void shell () {System.out.println ('woof')} abstract void jump () // đây là một hàm ảo thuần túy} class MyDog expand Dog {void jump () {System.out.println ('Jumps in the air')}} public class Runner {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 Đầu ra: Nhảy trong không khí

Đây là cách hàm ảo có thể được sử dụng với lớp trừu tượng.

Đa hình thời gian chạy

Đa hình thời gian chạy là khi một lệnh gọi đến một phương thức bị ghi đè được giải quyết tại thời điểm chạy thay vì thời gian biên dịch . Phương thức ghi đè được gọi thông qua biến tham chiếu của lớp cơ sở.

class Edureka {public void show () {System.out.println ('welcome to edureka')}} class Khoá học mở rộng Edureka {public void show () {System.out.println ('Java Certification Program')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Đầu ra: Khóa học chứng chỉ Java

Những điểm cần nhớ

  • Đối với một hàm ảo trong Java, bạn không cần khai báo rõ ràng. Nó là bất kỳ mà chúng ta có trong một lớp cơ sở và được định nghĩa lại trong lớp dẫn xuất có cùng tên.

  • Con trỏ lớp cơ sở có thể được sử dụng để tham chiếu đến đối tượng của lớp dẫn xuất.

  • Trong quá trình thực thi chương trình, con trỏ lớp cơ sở được sử dụng để gọi các hàm của lớp dẫn xuất.

Đến phần cuối của bài viết này, chúng ta đã tìm hiểu về Hàm ảo trong Java. Tôi hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này.

Nếu bạn thấy bài viết này về “Hàm ảo trong Java” có liên quan, hãy xem một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Chúng tôi ở đây để giúp bạn từng bước trong hành trình của mình và đưa ra chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với nhiều giống Ngủ đông & .

Nếu bạn gặp bất kỳ câu hỏi nào, vui lòng đặt tất cả câu hỏi của bạn trong phần nhận xét của “Hàm ảo trong Java” và nhóm của chúng tôi sẽ sẵn lòng trả lời.