java - 重写私有(private)方法

标签 java oop inheritance private overriding

我的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/

相关文章:

c++ - VC++ 调试器 - 评估虚函数,CXX0052 : Error: member function not present

java - 获取 java.lang.NoSuchFieldError : usingExperimentalRuntime in GAE MemCache

java - 在 Android 上使用 RESTEasyClient 时出现 NoSuchMethodError

java - 如何在另一个创建的类中运行两个线程?

php - 何时在 PHP 中使用接口(interface)

C++:覆盖纯虚拟成员变量?

c# - 如何跳过直接基类覆盖函数

c++ - 继承类中的构造函数

java - spring-boot mvc 测试 : how to disable validation?

c++ - 虚拟与纯虚拟基类函数和从 dll 导出