In Java, it is compiler error to give more restrictive access to a derived class function which overrides a base class function. For example, if there is a function public void foo() in base class and if it is overridden in derived class, then access specifier for foo() cannot be anything other than public in derived class. If foo() is private function in base class, then access specifier for it can be anything in derived class.
Consider the following two programs. Program 1 fails in compilation and program 2 works fine.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.