提问人:Bob 提问时间:11/6/2019 最后编辑:smac89Bob 更新时间:11/6/2019 访问量:1257
使用“this”调用超类方法的子类
Subclass calling a superclass method using "this"
答:
0赞
Jinesh Francis
11/6/2019
#1
No ,将始终引用我们使用它的类的实例。this
如果我们在父类中使用,它将始终返回父类 实例。
this
如果要在父类方法中使用子类,请重写父类的方法。this
0赞
Kris
11/6/2019
#2
this
始终引用 self 对象。即,如果 child 使用 reference,则指向 child。如果父项使用 ,则指向父项。this
this
如果找不到对自我中需要的东西的引用,那么它会在父项中寻找引用。this
我怀疑您的困惑来自方法覆盖,其中父级可能会使用 调用方法,但执行子项中的方法。这是因为,总是在子项中创建的对象。所以在这种情况下指向孩子。this
this
简单地说,指向实例化的类的实例。如果该实例不包含引用的实体,则在父级(如果有)上进行查找this
0赞
ardhani
11/6/2019
#3
类中的关键字将始终引用对象。this
为了更好地理解,我编写了几个示例类。
父类
public class TestClass{
public void func(){
this.cFunc();
System.out.println("In Parent");
}
public void cFunc(){
System.out.println("cFunc in parent");
}
}
子类
public class TestClassChild extends TestClass{
public void cFunc(){
System.out.println("cFunc in child");
}
}
例
1) 使用子类引用访问的子对象
TestClassChild tc = new TestClassChild();
tc.func();
输出cFunc in child - Child method is called
In Parent
2) 使用父类引用访问的子对象
TestClass t = new TestClassChild();
t.func();
输出cFunc in child - Irrespective if it was referenced by parent still child method got called.
In Parent
3) 使用父类引用访问的父对象
TestClass tp = new TestClass();
tp.func();
输出cFunc in parent - Parent function got called.
In Parent
希望下面的例子能让你清楚。
评论
this