您的位置:首页 > 其它

多态+this的一个小题

2016-08-17 22:00 120 查看
class A{
void fun1(){
System.out.println(this.fun2());
}
int fun2(){
return 123;
}
}

public class B extends A{
int fun2(){
return 456;
}
public static void main(String[] args) {

A a;
B b = new B();
b.fun1();
a = b;
a.fun1();
}

}
运行结果是:456

this.fun2();

this代表本类(A类)类型的引用,

但是指向的却是B类的对象,因为是B对象在调用它

this-->new B();//this指向的是B对象的地址

所以this.fun2();又可以表示为 A a = new B();

所以this.fun2()----------->a.fun2();

多态调用,结果:456.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: