试图在父数组java中执行子元素的
我有三节课试图在父数组java中执行子元素的,java,arrays,Java,Arrays,我有三节课 public class PutController{ public PutController[] putControllerArray = new PutController[2]; public void controlar(int players) { if(numeroJugadores==0){ putControllerArray[0] = new PutAutoController(tablero, tableroVi
public class PutController{
public PutController[] putControllerArray = new PutController[2];
public void controlar(int players) {
if(numeroJugadores==0){
putControllerArray[0] = new PutAutoController(tablero, tableroView, turno, turnoView);
putControllerArray[1] = new PutAutoController(tablero, tableroView, turno, turnoView);
}
if(numeroJugadores==1){
putControllerArray[0] = new PutManualController(tablero, tableroView, turno, turnoView);
putControllerArray[1] = new PutAutoController(tablero, tableroView, turno, turnoView);
}
}
}
public class PutManualController extends PutController {
public void methodToCall(){
.....
}
}
public class PutAutoController extends PutController {
public void methodToCall(){
.....
}
}
class Principal{
private PutController putController = new PutController(tablero, tableroView, turno, turnoView);
}
在我的Principal类中,我想调用put类数组中元素的一个方法,如下所示
putController.putControllerArray[0].methodToCall();
希望你能帮助我。谢谢 只要
PutController
包含方法methodToCall()
(作为子类实现的抽象方法,或者使用基类中的具体实现),就可以在数组的任何元素上调用它
public class PutController
{
...
public void methodToCall ()
{
....
}
...
}
如果子类需要不同的实现,它们可以重写methodToCall()
这将使代码putControllerArray[0].methodToCall()
有效。当然,如果需要从类外部访问该数组,则需要创建类的实例,因为它不是静态成员。不过,最好将数组设为私有,并通过返回数组第i个元素的方法访问它
public class PutController
{
...
public PutController getElement (int i)
{
if (i < 0 || i >= putControllerArray.length) {
// TODO throw some exception
}
return putControllerArray[i];
}
...
}
公共类控制器
{
...
公共PutController getElement(int i)
{
if(i<0 | | i>=putControllerArray.length){
//TODO抛出一些异常
}
返回控制器阵列[i];
}
...
}
然后可以通过
putController.getElement(0.methodToCall())执行methodToCall()代码>我尝试做类似的事情,但没有正确理解。你能帮我举个例子吗?@RodrigoLópez不确定你哪里出了问题,但添加了一个例子。谢谢你的例子:)