Accessing private variables through static methods in Java
•
Java
Suppose I have the following Java classes:
public class A {
private int x;
public A(int x){
this.x = x;
}
public static void main(String[] args) {
A a = new A(1);
B b = new B(1,2);
System.out.println((A)b.x);
}
}
Class B:
public class B extends A {
public int y;
public B(int x,int y){
super(x);
this.y = y;
}
}
Why does the compiler mark access to X on this line
System.out.println((A)b.x);
As an error, even if I try to access x from the class that defines it?
Because: 1 Use polymorphism? 2. Using static methods? 3. Main methods used?
Solution
You need to do (a) b) X to enter it correctly
Note: you are trying to convert property X type to type A. This is an error!
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
