public class AA
{
public static void main(String[] args) {
new B();
}
}
class A
{
int i = 7;
public A()
{
System.out.println("i from A is " + i);
}
public void setI(int i) {
this.i = 2 * i;
}
}
class B extends A
{
public B()
{
setI(20);
System.out.println("i from B is " + i);
}
@Override
public void setI(int i) {
this.i = 3 * i;
}
}
B是子类调用父类中的无参构造;会打印
i from A is 7
然后会有参构造, 又叫重载override;
这时忽略, 父类中的同一个方法只看子类中重载的方法
所以i = 20*3;
打印:
i from B is 60
如果把B中的重载注释掉, 那么调用setI时就调用父类中的方法了