class A{
int a=f();
int f(){return 1;}
}
class B extends A{
int b=a;
int f(){return 2;}
public static void main(String args[]){
B b1= new B();
System.out.println(b1.b);
}
}
谁能解释一下啊 这是什么作用的啊
尤其是 int a=f();
int f(){return 1;}
还有b1.b是如何调用的
int a=f();
int f(){return 1;}
}
class B extends A{
int b=a;
int f(){return 2;}
public static void main(String args[]){
B b1= new B();
System.out.println(b1.b);
}
}
谁能解释一下啊 这是什么作用的啊
尤其是 int a=f();
int f(){return 1;}
还有b1.b是如何调用的
那a变量在B类里调用的就是B类的f()方法
1 类A里面有个成员变量int a=f();的意思是a的值等于方法f()的返回值,也就是1;
2 类B继承了类A,并且重写了方法f().这时候f()的返回值是2。并且也继承了成员变量a,也就是说类B中也有个int a;
3 main方法是在类B里面的,这时int b=a。而a又等于重写后f()的返回值也就是2.所以输出是2了。
int a=f(); 将方法的返回值赋值给a
b1.b//B重写了父类的方法f(),b1.b调用B中的f()方法
1 类A里面有个成员变量int a=f();的意思是a的值等于方法f()的返回值,也就是1;
2 类B继承了类A,并且重写了方法f().这时候f()的返回值是2。并且也继承了成员变量a,也就是说类B中也有个int a;
3 main方法是在类B里面的,这时int b=a。而a又等于重写后f()的返回值也就是2.所以输出是2了。