gpt4 book ai didi

java - java继承隐藏方法

转载 作者:行者123 更新时间:2023-12-01 11:27:02 27 4
gpt4 key购买 nike

嗨,我在一本书上发现了这段代码的片段。但不知怎的,我无法完全理解java如何使用私有(private)方法而不是公共(public)方法

package com.toro.employee2;

public class Deer {
public Deer() {
System.out.print("Deer");
}

public Deer(int age) {
System.out.print("DeerAge");
}

private boolean hasHorns() {
return false;
}

public static void main(String[] args) {
Deer deer = new Reindeer(5);
System.out.println("," + deer.hasHorns());
}
}

class Reindeer extends Deer {
public Reindeer(int age) {
System.out.print("Reindeer");
}
public boolean hasHorns() {
return true;
}
}

输出为 DeerReindeer,false我的问题是:

当我将 Deer 类 hasHorns() 方法更改为 PRIVATE 以外的其他访问修饰符时,它将使用 Reindeer 类 hasHorns() 方法,从而返回 true,但如果 Deer 类 hasHorns() 方法使用 PRIVATE 访问修饰符,它将返回相反,为 false。

如果您能解释一下这是如何工作的,那就太好了。

最佳答案

私有(private)方法不会被继承,也不会被覆盖。因此,当您调用deer.hasHorns()时,执行的方法是Deer#hasHorns。事实上,如果将 main 方法从 Deer 移至 Reindeer 或其他类,该代码段将会失败。

关于java - java继承隐藏方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30737078/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com