Я пишу программу в Java и иметь проблему с inheritance.The кодом Я бег имеет такую структуру:Как Наследуйте класс без вызова его конструкторы в Java
public class BaseClass
{
ObjectInputStream a;
ObjectOutputStream b;
public BaseClass(ObjectInputStream a, ObjectOutputStream b)
{
this.a = a;
this.b = b;
}
//Some other code....
Thread subClass = new Thread(new SubClass());
subClass.start();
}
А потом вот SubClass :
public SubClass extends BaseClass implements Runnable
{
//Code for SubClass...
}
Затем, когда я скомпилировать код, единственная ошибка я получаю это
./SubClass.java:6: error: constructor BaseClass in class BaseClass'
cannot be applied to given types;
public class SubClass extends BaseClass implements Runnable
^
required: ObjectInputStream,ObjectOutputStream
found: no arguments
Я Assum что проблема возникает из-за того, что я расширяю BaseClass, у которого есть конструктор, поэтому он вызывается, когда я наследую класс, но я не совсем уверен. Есть ли способ вызвать этот конструктор с правильными аргументами? Или, еще лучше, способ вообще не ссылаться на конструктор? Любая помощь приветствуется, и спасибо за ваши ответы.
Если вы правильно обработали, вы можете сделать 'super (null, null)' в конструкторе для 'SubClass' – 0xA2C2A
Нет. Вам нужно вызвать super (someObjectInputStream, someObjectOutputStream) из всех конструкторов вашего подкласса. У меня такое чувство, что вы злоупотребляете наследованием. Вы должны объяснить, чего вы пытаетесь достичь, что такое BaseClass и SubClass. –
Итак, ваш реальный вопрос: «Как вызвать конструктор базового класса в java»? Вы пытались ввести свой вопрос в Google? Или через какой-то учебник по основам Java? (Извините за тон, но это * очень простая Java, и SO пытается не быть «пожалуйста, прочитайте документы для меня», по крайней мере, для этого основного материала). – hyde