java子类访问父类的变量么
Ⅰ java中为什么子类仍然可以通过继承公共方法访问父类的私有变量
那是因为父类中的私有变量在父类中被方法调用了,当子类执行的时候回默认执行父类中的构造方法,所以是可以的,举例:
父类
public class A {
private int x =5;
public void setX(int x) { this.x = x; }
public int getX() { return this.x; }
}
子类
public class B extends A { }
这个时候如果通过“B.getX();”输出的结果就是:5;
Ⅱ JAVA中子类引用父类成员变量
因为 private double chang; private double kuan; 私有变量只能在类内部访问,子类是不能访问的所以
super.chang=a;super.kuan=a;不行,而且Rectangle没有无参构造方法,所以必须用super(a,a)来实例化。
如果想super.chang=a;super.kuan=a;的还 先把private 改成protected 这样子类才能访问的到。另外再给Rectangle加无参构造方法,这样才能不通过super(a,a)来实例化父类
Ⅲ java 中Private变量如何在子类中访问
子类是不能够直接访问父类中的private变量的
可行的解决方法有:
①将变量的访问权限修饰词改为public或者protected或者default(什么都不写)
②在父类中写一个public的成员方法获得private变量的值
示例代码如下:
用这种方法是比较安全的,变量控制为私有,通过get方法得到它的值,通过set方法修改它的值
Ⅳ 关于子类访问父类私有成员变量问题,大神来看看
楼上说错了,就只有一个B实例,没有A实例。
继承的概念,就是把父类的所有东西都继承下来了,包括A类的x成员变量和所有方法,只是在B类里无法直接访问x变量而已。
所以创建的B实例的内存里,也是有x,并为它分配了内存空间的