gpt4 book ai didi

java - 将父类设为私有(private),但使子类中的字段可与 'extend' 一起使用

转载 作者:行者123 更新时间:2023-12-01 10:01:39 25 4
gpt4 key购买 nike

我的 Java 代码遇到一些问题。我需要字段和父类是私有(private)的,但它们必须在子类中可用。

我需要对类和字段修饰符运行 JUnite 测试。运行时错误代码: ErrorPS:我尝试将它们设置为 protected ,但随后您可以更改这些字段。

需要一些建议。提前致谢

父类:

package logica;
import java.util.Objects;

public class Uitgave {
private String titel;
private double prijs;

private Uitgave(String titel, double prijs){
this.titel = titel;
this.prijs = prijs;
}

子类:

package logica;

import java.util.Objects;

public class Boek extends Uitgave{
private String auteur;
private int paginas;
public Boek(String titel,String auteur, double prijs, int paginas){
super(titel,prijs);
if(titel==null || auteur==null || prijs<0 || paginas<0){
throw new IllegalArgumentException
("Controleer uw gegevens op fouten.
Prijs en aantal paginas kan niet negatief zijn,
het boek moet een titel en auteur hebben");
}

this.auteur = auteur;
this.paginas = paginas;
}

最佳答案

您有 2 个选择。

  1. 将 private 访问修饰符至少更改​​为 protected。但如果这样做,变量就可以在包内部访问。不仅仅是子类( In Java, difference between default, public, protected, and private )。

  2. 在父类中为私有(private)变量定义get方法,在子类中使用super.getX()。

关于java - 将父类设为私有(private),但使子类中的字段可与 'extend' 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36776954/

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