【发布时间】:2015-09-16 18:13:44
【问题描述】:
class Parent {
public Parent() {
System.out.println("Parent Default..");
System.out.println("Object type : " + this.getClass().getName());
this.method();
}
private void method() {
System.out.println("private method");
}
}
class Child extends Parent {
public Child() {
System.out.println("Child Default..");
}
public static void main(String[] args) {
new Child();
}
}
当我运行此代码时,它会打印“this”的类名 = Child 但是“this”对象为什么能够调用父类的私有方法呢?
【问题讨论】:
-
你需要在父类中删除'this',因为当你调用继承时,this指向子类引用,所以它不会调用那个。
-
因为它是 parent 的私有方法 if this = parent 那么它调用它自己的方法
-
默认构造函数由编译器从子类自动提供
-
私有方法正在调用,因为您在
Parent构造函数中调用该方法。 -
@DanialHussain 删除
this不会改变任何事情。
标签: java inheritance private private-methods