gpt4 book ai didi

java - 为什么我的子类不继承其父类(super class)的私有(private)实例变量?

转载 作者:行者123 更新时间:2023-11-29 06:26:42 26 4
gpt4 key购买 nike

我正在用 Java 编写程序(我认为是 11)。

我有一个抽象类:

public abstract class Homework
{
// instance variables - replace the example below with your own
private int pages;
private String type;

/**
* Constructor for objects of class Homework
*/
public Homework()
{
// initialise instance variables
pages = 0;
type = "none";
}

public void setPages(int pages)
{
this.pages = pages;
}
public int getPages()
{
return pages;
}

public abstract void createAssignment(int pages);
}

还有一个子类:

public class Trigonometry extends Homework
{
/**
* Constructor for objects of class Trigonometry
*/
public Trigonometry()
{
super();
}

public void createAssignment(int pages)
{
this.pages = pages;
type = "Trigonometry";
}
}

我在 createAssignment() 方法中的 this.pagestype 处遇到错误。

pages has private access in Homework

type has private access in Homework

难道 Trigonometry 不应该从其父类继承 pagestype 吗?我该怎么做才能解决这个问题?

最佳答案

private 成员不能被子类访问。

子类应该将这些成员的初始值从其构造函数传递给父类(super class)构造函数,或者您可以使用 public getter 和 setter 方法访问和修改子类。

public void createAssignment(int pages)
{
setPages(pages);
setType("Trigonometry");
}

关于java - 为什么我的子类不继承其父类(super class)的私有(private)实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55102445/

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