Shadowing of static functions in Java
In Java, if name of a derived class static function is same as base class static function then the derived class static function shadows (or conceals) the base class static function. For example, the following Java code prints “A.fun()”
// file name: Main.java class A { static void fun() { System.out.println( "A.fun()" ); } } class B extends A { static void fun() { System.out.println( "B.fun()" ); } } public class Main { public static void main(String args[]) { A a = new B(); a.fun(); // prints A.fun() } } |
chevron_right
filter_none
If we make both A.fun() and B.fun() as non-static then the above program would print “B.fun()”.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Recommended Posts:
- Java.util.BitSet class methods in Java with Examples | Set 2
- How does default virtual behavior differ in C++ and Java ?
- How are Java objects stored in memory?
- How are parameters passed in Java?
- Are static local variables allowed in Java?
- final variables in Java
- Default constructor in Java
- Assigning values to static final variables in Java
- Comparison of Exception Handling in C++ and Java
- Does Java support goto?
- Arrays in Java
- Inheritance and constructors in Java
- More restrictive access to a derived class method in Java
- Comparison of static keyword in C++ and Java
- Static blocks in Java