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.”。父类的辅助方法被隐藏了,因为它不能被外部调用。