[英]How do I access an inner class constructor from a derived class?
對於以下Ocean
艙,
public class Ocean {
/**
* Define any variables associated with an Ocean object here. These
* variables MUST be private.
*/
// width of an Ocean
private final int width;
// height of an Ocean
private final int height;
class Critter {
/**
* Defines a location of a Critter in an Ocean.
*/
Point location;
public Critter(int x, int y) {
location = new Point(x,y);
}
public Point getLocation() {
return location;
}
}
private Critter[][] oceanMatrix;
}
我想從下面的Shark
構造函數類訪問上面的構造函數Critter
。
class Shark extends Ocean implements Behaviour {
public Shark(int x, int y, int hungerLevel) {
super(x,y);
}
}
如何從Shark
類構造函數訪問Critter
類構造函數?
似乎您應該擴展Critter
而不是Ocean:
class Shark extends Ocean.Critter implements Behaviour{
...
public Shark(int x, int y, int hungerLevel){
super(x,y);
}
...
}
為此,Criter必須是靜態內部類。 我不知道您需要多少這種設計,但是內部類應限於彼此高度依賴的類,在這里情況並非如此。 如果可以,請將Critter移出海洋。
只要Shark
與Ocean
在同一包中,並且將static
修飾符添加到Critter
的類聲明中,您就應該能夠使用new Ocean.Critter()
訪問Critter
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.