Java继承辅助方法隐藏和字段隐藏

bluesky1年前 ⋅ 144 阅读

ChatGPT的回答仅作参考:

Java中的继承是一种重要的面向对象编程特性,它允许子类继承父类的属性和方法。在继承中,子类可以覆盖父类的方法和字段,这就涉及到了方法和字段的隐藏。

方法的隐藏

方法的隐藏是指子类定义了一个与父类同名的方法,从而隐藏了父类的方法。当子类对象调用该方法时,实际上调用的是子类的方法,而不是父类的方法。方法的隐藏可以通过在子类中定义一个与父类同名的方法来实现。

例如,父类中有一个方法:

```
public void print() {
    System.out.println("This is parent class.");
}
```

子类中定义了一个同名方法:

```
public void print() {
    System.out.println("This is child class.");
}
```

当子类对象调用print()方法时,实际上调用的是子类的方法,输出结果为“This is child class.”。

字段的隐藏

字段的隐藏是指子类定义了一个与父类同名的字段,从而隐藏了父类的字段。当子类对象访问该字段时,实际上访问的是子类的字段,而不是父类的字段。字段的隐藏可以通过在子类中定义一个与父类同名的字段来实现。

例如,父类中有一个字段:

```
public int num = 10;
```

子类中定义了一个同名字段:

```
public int num = 20;
```

当子类对象访问num字段时,实际上访问的是子类的字段,输出结果为20。

辅助方法的隐藏

辅助方法是指在父类中定义的方法,它被其他方法调用,但是它本身不被外部调用。在子类中,如果定义了一个与父类同名的方法,该方法会隐藏父类的辅助方法。这种情况下,子类中的方法不会被其他方法调用,因为它隐藏了父类的辅助方法。

例如,父类中有一个辅助方法:

```
private void helper() {
    System.out.println("This is a helper method.");
}
```

子类中定义了一个同名方法:

```
public void helper() {
    System.out.println("This is a child class helper method.");
}
```

在子类中,如果调用helper()方法,实际上调用的是子类的方法,输出结果为“This is a child class helper method.”。父类的辅助方法被隐藏了,因为它不能被外部调用。

全部评论: 0

    相关推荐