在 Java 中,当子类继承父类时,如果子类中存在与父类相同的属性或方法,Java 会根据不同情况做出不同的处理:
属性重名:
如果子类中定义了与父类同名的属性,则子类中的属性会覆盖父类中的同名属性。在子类对象中访问该属性时,将优先访问子类中的属性。
2. 方法重载:
如果子类中定义了与父类同名的方法,但是参数列表不同(即发生了方法重载),则不会影响父类中的同名方法。在子类对象中调用该方法时,会根据参数类型选择合适的方法。
3. 方法重写:
如果子类中定义了与父类同名、同参数列表、同返回值类型的方法,那么子类中的方法就覆盖了父类中的同名方法。在子类对象中调用该方法时,将优先调用子类中的方法。
需要注意的是,子类中的属性和方法访问修饰符不能严格比父类小。也就是说,如果父类中的属性和方法是 public ,那么子类中对应的属性和方法至少也要是 public,否则会编译报错。