我是 Java 和 OOP 的新手,
我在A类中使用了一个私有子类(实际上是一个结构)B,一切都很顺利,直到我决定为子类B创建一个父类C。我想公开C类的一些受保护成员。
例如:
public class A {
private class B extends C {
public int product;
public int x;
public int y;
public void add() {
product=x+y;
}
}
B b=new B;
b.x=1;
b.y=2;
b.multiply();
System.out.println(b.product+"="+b.x+"x"+b.y);
public class C {
protected int x;
protected int y;
public int sum;
public C(px,py) {
x=px;
y=py;
}
public void sum() {
sum=x+y;
}
}
我得到
对于默认构造函数,隐式超级构造函数 C() 未定义。必须定义显式构造函数
当然,我可以删除扩展 C,并回到我之前的状态。或者我可以做一个getter/setter。但我认为内部结构是可以接受的,它应该能够扩展其他类是可以理解的。