Co to jest funkcja wirtualna w Javie?



W tym artykule omówiono koncepcję funkcji wirtualnej w Javie z jej zastosowaniami w polimorfizmie i wywoływaniem funkcji w czasie wykonywania z przykładami.

Java to który obsługuje koncepcje takie jak polimorfizm, dziedziczenie, abstrakcja itp. Te koncepcje OOP obracają się wokół zajęcia , obiekty i funkcje składowe. Funkcja wirtualna jest jedną z takich koncepcji, która pomaga w polimorfizmie w czasie wykonywania. Na tym blogu dowiemy się o wirtualnych funkcjach w . W tym artykule omówiono następujące tematy.

Co to jest funkcja wirtualna w Javie?

Zachowanie funkcji wirtualnej może być zastąpiony z dziedziczącą funkcją klasy o tej samej nazwie. Jest zasadniczo zdefiniowany w klasie bazowej i nadpisywany w klasie dziedziczonej.





Oczekuje się, że funkcja wirtualna w Javie zostanie zdefiniowana w . Możemy wywołać funkcję wirtualną, odwołując się do obiektu klasy pochodnej za pomocą odwołania lub wskaźnika klasy bazowej.

Każda metoda niestatyczna w Javie jest domyślnie metodą wirtualną. Java nie ma wirtualnego słowa kluczowego, takiego jak C ++ , ale możemy je zdefiniować i wykorzystać do takich pojęć, jak polimorfizm w czasie wykonywania.



Przykład funkcji wirtualnej

Spójrzmy na przykład, aby zrozumieć, jak możemy używać funkcji wirtualnych w Javie.

class Pojazd {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 ()}}
 Wynik: Pojazd transportowy do dużych obciążeń

Każda metoda niestatyczna w Javie jest funkcją wirtualną, z wyjątkiem finał i metody prywatne . Metody, których nie można zastosować do polimorfizmu, nie są uważane za funkcję wirtualną.

jak uruchomić php w systemie Windows 10

DO nie jest uważana za funkcję wirtualną, ponieważ metoda statyczna jest powiązana z samą klasą. Dlatego nie możemy wywołać metody statycznej z nazwy obiektu lub klasy dla . Nawet jeśli pominiemy metodę statyczną, nie współgra ona z koncepcją polimorfizmu.



Funkcja wirtualna z interfejsami

Wszystkie interfejsy Java są wirtualne i polegają na klasach implementujących w celu zapewnienia implementacji metod. Kod do wykonania jest wybierany w czasie wykonywania. Oto prosty przykład dla lepszego zrozumienia.

interfejs Samochód {void applyBrakes ()} interfejs Audi implementuje Samochód {void applyBrakes () {System.out.println ('breaks Applied')}}

W tym przypadku applyBreaks () jest wirtualny, ponieważ funkcje w interfejsach są zaprojektowane tak, aby były nadpisywane.

co to jest fasola java

Czysta funkcja wirtualna

Czysta funkcja wirtualna to funkcja wirtualna, dla której nie mamy implementacji. Metodę abstrakcyjną w Javie można uznać za czystą funkcję wirtualną. Weźmy przykład, aby lepiej to zrozumieć.

abstract class Dog {final void bark () {System.out.println ('woof')} abstract void jump () // to jest czysta funkcja wirtualna} class MyDog extends Dog {void jump () {System.out.println ('Skoki w powietrzu')}} public class Runner {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 Wynik: Podskakuje w powietrzu

Oto jak funkcja wirtualna może być używana z klasą abstrakcyjną.

Polimorfizm w czasie wykonywania

Polimorfizm w czasie wykonywania ma miejsce, gdy wywołanie metody zastępowanej jest rozpoznawane w czasie wykonywania zamiast czas kompilacji . Zastąpiona metoda jest wywoływana za pośrednictwem zmiennej referencyjnej klasy bazowej.

class Edureka {public void show () {System.out.println ('welcome to edureka')}} class Rozszerzony kurs Edureka {public void show () {System.out.println ('Java Certification Program')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Wynik: Kurs certyfikacji Java

Punkty do zapamiętania

  • W przypadku funkcji wirtualnej w Javie nie jest wymagana jawna deklaracja. To jest dowolne które mamy w klasie bazowej i przedefiniowaliśmy w klasie pochodnej o tej samej nazwie.

  • Wskaźnik klasy bazowej może służyć do odwoływania się do obiektu klasy pochodnej.

  • Podczas wykonywania programu wskaźnik klasy bazowej jest używany do wywoływania funkcji klasy pochodnej.

    dynamiczna alokacja pamięci w C ++

To prowadzi nas do końca tego artykułu, w którym dowiedzieliśmy się o funkcji wirtualnej w Javie. Mam nadzieję, że wszystko, co zostało Ci udostępnione w tym samouczku, jest dla Ciebie jasne.

Jeśli uważasz, że ten artykuł „Funkcja wirtualna w Javie” jest odpowiedni, zapoznaj się z zaufana firma zajmująca się edukacją online z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.

Jesteśmy tutaj, aby pomóc Ci na każdym etapie Twojej podróży i opracować program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i szkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych lubić Hibernować & .

Jeśli napotkasz jakieś pytania, nie wahaj się zadawać wszystkich pytań w sekcji komentarzy w „Wirtualnej funkcji w Javie”, a nasz zespół z przyjemnością odpowie.