我的java书有如下练习题:
public class Person(){...}
public class Teacher extends Person{...}
它会询问以下哪些陈述是正确的:
1:Teacher继承了Person
的构造函数。
2:教师可以添加新方法和私有(private)实例变量。
3: Teacher 可以覆盖 Person
已有的私有(private)方法。
书上说 2 和 3 是正确的。我说只有2是真的。
我读到子类确实继承了私有(private)方法和成员字段,但不能直接访问它们。所以我的问题是,如果不能直接访问它们,如何覆盖现有的私有(private)方法?如果私有(private)方法可能出于充分的理由被设为私有(private),为什么还要重写私有(private)方法呢?
最佳答案
3: Teacher can override existing private methods of Person.
这是错误的。
父类(super class)的私有(private)方法/字段对子类不可见/继承。因此,您不能覆盖它们。
举个例子试试
关于java - 重写私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23098385/