将父类设为私有,但使字段可用于'扩展'在子类中

时间:2016-04-21 17:48:02

标签: java

我的Java代码遇到了一些麻烦。 我需要字段和父类是私有的,它们必须在子类中可用。

我需要在类和字段修饰符上运行JUnite测试。 运行时的错误代码: Error PS:我试过让它们受到保护但是你可以改变字段。

可以使用一些建议。提前致谢

家长班:

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;
}

1 个答案:

答案 0 :(得分:1)

您有2个选项。

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

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