如何从另一个类构造函数调用变量(长度、宽度、高度)试图从 A 类调用变量长度、宽度、高度不能这样做 class A { int length; int breadth; int height; A(int length,int height,int breadth) { this.length=length; this.height=height; this.breadth=breadth; } } class B extends A { public void display() { System.out.println("Length of the rect is "+length); System.out.println("Height of the rect is "+height); System.out.println("Breadth of the rect is "+breadth); } } class Inheritence { public static void main(String [] args) { new A(5,6,7); new B().display(); } }
3 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
我试图从 A 类中调用变量长度、宽度、高度
不,您可能想使用 A实例中的变量。
我认为您需要的是在B其中定义的复制构造函数,它将作为参数 a A。
所以定义它,B例如
public B(A a){
super(a.length, a.breadth, a.height);
}
现在你可以这样做:
A a = new A(5,6,7);
new B(a).display();
慕运维8079593
TA贡献1876条经验 获得超5个赞
A objA = new A(5,6,7)
-使得称为对象objA
和属性集length
,breadth
并height
以5,6,7
分别。
B objB = new B()
- 创建一个objB
使用新属性调用的对象length
,breadth
并且height
根本不设置它们,因此没有什么可显示的。
如果要将值设置为类的属性,请在类B
中创建构造函数B
并将值分配给字段length
,breadth
并height
从中继承A
。
陪伴而非守候
TA贡献1757条经验 获得超8个赞
您需要做两件事:
将访问修饰符更改为 protected(在此处阅读)
在 B 中创建一个构造函数来设置这些参数的值,例如
public B(int length, int breadth, int height) {
super(length, breadth, height);
}
完成后,B将可以访问这些成员,并且您将能够打印这些值。
添加回答
举报
0/150
提交
取消