Java에서 가상 기능이란 무엇입니까?



이 기사에서는 다형성의 응용 프로그램과 런타임에 예제를 사용하여 함수를 호출하는 Java의 가상 함수 개념을 다룹니다.

자바는 다형성, 상속, 추상화 등과 같은 개념을 지원합니다. 이러한 OOP 개념은 클래스 , 사물 및 멤버 함수. 가상 함수는 런타임 다형성에 도움이되는 이러한 개념 중 하나입니다. 이 블로그에서는 가상 기능에 대해 . 이 기사에서는 다음 주제에 대해 설명합니다.

Java에서 가상 기능이란 무엇입니까?

가상 기능의 동작은 다음과 같습니다. 재정의 같은 이름을 가진 상속 클래스 함수로. 기본적으로 기본 클래스에서 정의되고 상속 된 클래스에서 재정의됩니다.





Java의 가상 기능은 . 기본 클래스의 참조 또는 포인터를 사용하여 파생 클래스의 개체를 참조하여 가상 함수를 호출 할 수 있습니다.

Java의 모든 비 정적 메소드는 기본적으로 가상 메소드입니다. Java에는 다음과 같은 가상 키워드가 없습니다. C ++ 그러나 우리는 그것들을 정의하고 런타임 다형성과 같은 개념에 사용할 수 있습니다.



가상 기능 예

Java에서 가상 기능을 사용하는 방법을 이해하기 위해 예제를 살펴 보겠습니다.

예제와 함께 초보자를위한 pl SQL
class Vehicle {void make () {System.out.println ( 'heavy duty')}} public class Trucks extends Vehicle {void make () {System.out.println ( 'Transport vehicle for heavy duty')} public static void main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 산출: 헤비 듀티 용 운송 차량

Java의 모든 비 정적 메소드는 다음을 제외하고 가상 기능입니다. 결정적인개인 방법 . 다형성에 사용할 수없는 메서드는 가상 함수로 간주되지 않습니다.

에 정적 메서드는 클래스 자체에 바인딩되어 있으므로 가상 함수로 간주되지 않습니다. 따라서 객체 이름 또는 클래스에서 정적 메서드를 호출 할 수 없습니다. . 정적 메서드를 재정의하더라도 다형성의 개념과 공명하지 않습니다.



인터페이스가있는 가상 기능

모든 Java 인터페이스는 가상이며 메소드 구현을 제공하기 위해 구현 클래스에 의존합니다. 실행 코드는 런타임에 선택됩니다. 다음은 더 나은 이해를위한 간단한 예입니다.

interface Car {void applyBrakes ()} interface Audi는 Car {void applyBrakes () {System.out.println ( 'breaks Applied')}}를 구현합니다.

여기서 applyBreaks ()는 인터페이스의 함수가 재정의되도록 설계 되었기 때문에 가상입니다.

순수 가상 기능

순수 가상 기능은 구현되지 않은 가상 기능입니다. Java의 추상 메소드는 순수한 가상 기능으로 간주 될 수 있습니다. 이를 더 잘 이해하기 위해 예를 들어 보겠습니다.

abstract class Dog {final void bark () {System.out.println ( 'woof')} abstract void jump () // 이것은 순수한 가상 함수입니다} class MyDog extends Dog {void jump () {System.out.println ( '공중 점프')}} public class Runner {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 산출: 공중에서 점프

이것이 가상 함수를 추상 클래스와 함께 사용할 수있는 방법입니다.

자바에서 콩은 무엇입니까

런타임 다형성

런타임 다형성은 재정의 된 메서드에 대한 호출이 대신 런타임에 해결되는 경우입니다. 컴파일 시간 . 재정의 된 메서드는 기본 클래스의 참조 변수를 통해 호출됩니다.

class Edureka {public void show () {System.out.println ( 'welcome to edureka')}} class Course extends Edureka {public void show () {System.out.println ( 'Java Certification Program')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 산출: 자바 인증 과정

기억해야 할 사항

  • Java의 가상 기능의 경우 명시 적 선언이 필요하지 않습니다. 그것은 무엇이든 기본 클래스에 있고 동일한 이름의 파생 클래스에서 재정의되었습니다.

  • 기본 클래스 포인터를 사용하여 파생 클래스의 개체를 참조 할 수 있습니다.

  • 프로그램을 실행하는 동안 기본 클래스 포인터는 파생 클래스 함수를 호출하는 데 사용됩니다.

이것으로 Java의 가상 기능에 대해 배운이 기사의 끝으로 이동합니다. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

'자바의 가상 기능'에 대한이 기사가 관련되어있는 경우 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사입니다.

우리는 여정의 모든 단계에서 귀하를 돕고 Java 개발자가 되고자하는 학생과 전문가를 위해 설계된 커리큘럼을 마련합니다. 이 과정은 Java 프로그래밍을 시작하고 다양한 Java 개념과 함께 핵심 및 고급 Java 개념을 교육하도록 설계되었습니다. 처럼 최대 절전 모드 & .

질문이 있으시면 'Virtual Function In Java'의 코멘트 섹션에 모든 질문을 남겨 주시면 저희 팀이 기꺼이 답변 해 드리겠습니다.