当前位置: 首页 > 知识库问答 >
问题:

如何在抽象类中使用在抽象类的子类中创建的对象

程谦
2023-03-14

我通过学校为一项任务提供的简报创建了一个飞机座位预订系统。我遇到了一个我无法解决的主要问题。

摘要说明抽象类必须有一个抽象方法和大约4个公共方法。在抽象类的两个子类中,我们都必须初始化对象数组(所有普通的座位)。然而,一旦它们被初始化,我不知道如何将它们发送回抽象类(该类有一个检查未预订的飞机座位的方法,这就是我需要初始化的座位对象的地方)

ArrayIndexOutOfBounds在一个应该在边界内的对象上

上面的链接包含了每一个类和它们的代码,我之前遇到了一个错误,有人帮我修复了这个错误,只是觉得在这里链接完整的文件会更容易。

我只想使用在抽象类的子类中创建的对象(座位)的初始化数组。

所有的输入是非常赞赏!

共有1个答案

陈铭晨
2023-03-14

在抽象类方法中(您想在其中使用初始化的数组),可以假定数组已经初始化。但是,在子类中,不能有另一个“Seat[][]newSeats;”。所以,在所有子类中删除它。

一个简单的例子如下,

//This will print 6 to the std output
public class HelloWorld{

     public static void main(String []args){
        Child test = new Child();
        System.out.println(test.getArrFirst());
     }


     public static abstract class Parent{
        int[] abc;

        public int getArrFirst(){
            return abc[1];
        }
     }

     public static class Child extends Parent{

         public Child(){
             abc = new int[10];
             abc[1] = 6;
         }
     }
}
 类似资料:
  • 问题内容: 在以下代码中,我创建了一个基本抽象类。我希望所有继承自其的类都提供该属性,因此我将该属性设置为。 然后,我创建了一个名为的子类,该子类旨在提供一些功能,但仍保持抽象。中没有属性,但是python实例化了该类的对象而没有错误。一个人如何创建抽象属性? 问题答案: 从Python 3.3 开始,修复了一个错误,这意味着装饰器现在应用于抽象方法时,可以正确地标识为抽象。 注:订单的问题,你必

  • 我正在进行一些考试修改工作,创建了一个Employee抽象类和两个扩展到Employee类的其他类(AcademyicEmployee和ProfessionalEmployee)。 我在Employee类中设置了一个公共静态void main来运行这些行: 我知道您不能实例化一个抽象类,并且创建的实际对象是“new”关键字之后的任何内容,但为什么允许我这样做: 我想它的工作方式是“数据类型”然后“

  • 下面是解释我的情况的基本框架代码。 这是超级抽象类: 这是超级抽象类的一个子类:(注意,我删除了其他函数,比如构造函数和方法,以缩短文章的篇幅 我想在抽象类中使用这种公共无效支付(int金额)方法;然而,超级抽象类Person不会接受支付(付款),因为该方法不在范围内。如何使这个工作? 谢谢~

  • 问题内容: 如何在C ++中创建一个抽象类,该抽象类具有一些我想在子类中重写的抽象方法?该文件应如何显示?是否有一个,如果是的话,应该看起来如何? 在Java中,它看起来像这样: 对于我来说,将此代码转换为C ++就足够了。 编辑: 我创建了代码,但是当我尝试遍历对象时,出现以下错误: 使用此代码: 问题答案: 在Java中,除非您声明了所有方法,否则默认情况下所有方法都是默认方法。在C ++中,

  • 问题内容: 假设这是一个抽象类,具有多个可以重写的方法。 在Java中,我可以执行以下操作: 如何在Kotlin中做同样的事情? 问题答案: 从Kotlin官方语言文档中: 适用于您手头的问题: 正如Peter Lamberg指出的那样-如果匿名类实际上是功能接口的实现( 即不是抽象类的实现 ),则可以使用SAM Conversions 进一步简化该语句: 还请注意有关Java和Kotlin中定义