gpt4 book ai didi

java - Java中抽象类的继承

转载 作者:行者123 更新时间:2023-12-02 03:49:08 24 4
gpt4 key购买 nike

我想制作一个简单的继承实例,互联网上有很多关于该实例的信息,但我只是无法理解我的情况。

public abstract class Board {       
private Block [][] board;
/**
* creates and empty board
*/
public Board(){
board = new Block[6][6];

//init board
for(int i = 0; i<board.length ...

}

public abstract place(int x, int y, int type);

public void otherFunction1();

etc..

还有我的 child 类(class)

public class StandartBoard extends Board{

public int place(int type, int x, int y) {
bord[i][j].something;
}

问题是,我想使用父类(super class)构造函数的初始化以及它的所有其他函数,但我希望 place 函数特定于 StandartBoard。我如何定义变量“board”,以便我可以使用和修改父类(super class)中的相同变量。

我知道一种方法是使用 set 和 gets,但是我不能使用 protected 或其他东西直接访问它......

最佳答案

如果您使用 protected 修饰符而不是 private 设置您的 board,那么您可以像您建议的那样直接访问它。正如您所说,另一种方法(不一定反射(reflect)正确的做法)是为其定义一个 getter :

public Block[][] getBoard(){
return board;
}

关于您的评论,是的,protected 具有包范围的访问权限。没有仅子类修饰符。 Java本来就有这样的修饰符。它是私有(private)保护,但在 Java 1.0 中被删除。

如果您想模仿这样的设计,您可以使用protected修饰符并强制只有父类及其子类位于同一个包中。

关于java - Java中抽象类的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36039266/

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