I have the following structure -
App.java
-
package JohnParcellJavaBasics.AccessModifierDemo;
import JohnParcellJavaBasics.AccessModifierDemo.*;
public class App {
public static void main(String[] args) {
}
}
AnimalApp.java
-
package JohnParcellJavaBasics.AccessModifierDemo.Animal;
import JohnParcellJavaBasics.AccessModifierDemo.Animal.*;
public class AnimalApp {
protected String animalName;
public void myMethod() {
}
}
Eagle.java
-
package JohnParcellJavaBasics.AccessModifierDemo.Animal.Bird;
import JohnParcellJavaBasics.AccessModifierDemo.Animal.*;
public class Eagle extends AnimalApp {
public void myMethod() {
AnimalApp.animalName = "abc";
}
}
In the file - Eagle.java
, in the line AnimalApp.animalName = "abc";
below animalName
there is a read line which reads -
The field AnimalApp.animalName is not visible
How can this be possible?
I am using VSCode on Ubuntu and OpenJDK 11.
animalName = "abc";
Why are you qualifying it with a class name?