java - 可以隐藏私有方法吗?
问题描述
我已经在网上阅读了几个关于是否可以覆盖私有方法的相互冲突的来源。那么这个例子到底发生了什么?方法移动被隐藏了吗?
class Animal {
private void move() {
System.out.println("Animals can move");
}
}
class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
public class TestDog {
public static void main(String args[]) {
Dog b = new Dog(); // Dog reference and Dog object
b.move(); // runs the method in Dog class
}
}
https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html说它在技术上不是压倒一切的,所以这叫什么,会有任何意外行为吗?
解决方案
你所做的并不是压倒一切的。如果您想确认这一点,只需将@Override
beforepublic void move()
放入类中Dog
,您将看到编译错误。
注意:方法private
总是隐藏在类中。没有办法让它在课堂之外访问。
推荐阅读
- sql - 在 Slick 中过滤时单引号会导致问题
- c# - 获得答案后,不再为用户分配相同的问题
- sql-server - 使用键/值结构修改 XML 的一部分
- callback - Bokeh + Jupyter - 如何在同一个 JS 回调中更新两个字形和图形
- sublimetext3 - Sublime Text 3 - 具有 csv 范围的片段?
- python - 如何使用 TF-IDF 训练 xgboost
- powershell - 如何更改 powershell 终端颜色或完全关闭颜色编码
- javascript - 通过数组 JavaScript 中的对象字段移动对象
- python-3.x - 对具有类属性的值执行操作
- c# - 我的代码没有根据从组合框 c# 中的选择切换到所需的功能