Я студент, который только начал изучать Java. Эта проблема возникает из задания, которое должно было бы создать Симулятор событий, но я буду показывать только те части кода, с которыми у меня возникла проблема, в частности конструктор.
Я намереваюсь создать объект Queue и объект PriorityQueue, который наследуется от того же объекта Queue, поскольку я хочу использовать функции объекта Queue. Я намереваюсь создать их в классе с именем QueueManager, но проблема, с которой я столкнулся, заключается в том, что я хочу использовать Scanner в конструкторе Queue (родительский класс), но я просто хочу создать пустой объект PriorityQueue (дочерний класс) без сканирования.
Сообщение об ошибке от компилятора
error: constructor Queue in class Queue cannot be applied to given types;
public PriorityQueue(){
^
required: String[]
found: no arguments
reason: actual and formal argument lists differ in length
Каков был бы способ сделать это, или это даже хороший дизайн программы?
Диспетчер очереди
class QueueManager{
private PriorityQueue p;
private Queue q;
public QueueManager(String [] args){
this.q=new Queue(args);
this.p=new PriorityQueue();
}
Очередь
import java.util.Scanner;
class Queue{
protected Event [] events =new Event [100];
private int start=0;
private int end=0;
protected int size=0;
private double time=0;
public Queue(String [] args){
Scanner s= new Scanner(System.in);
int pos=0;
while (s.hasNextDouble()){
double j=s.nextDouble();
Event arrives=new Event("arrives",new Customer(j));
this.events[pos]=arrives;
pos++;
}
this.end=pos-1;
this.size=pos;
}
PriorityQueue
class PriorityQueue extends Queue{
private double totaltime=0;
private int totalsize=0;
public PriorityQueue(){
};
PS: Я пришел из Python и узнал кое-что оОП там (которое кажется abit сфальсифицированным), без какого-либо акцента на программировании. Если у кого-то есть жесткие и быстрые правила для Java от Python и советы по программированию ООП, не стесняйтесь делиться ими. Спасибо.