Member 13203712 Ответов: 1

Почему эта программа показывает ошибку? Конструктор в классе не может быть применен для данного типа


class A
{
  int i,j;
  A(int i,int j)
  {
    this.i=i;
    this.j=j;
  }
  void show()
  {
    System.out.println("i="+i+" "+"j="+j);
  }
}

class B extends A
{
  int k;
  B(int k)
  {
    this.k=k;
  }
  void showsub()
  {
    System.out.println("i+j+k= "+(i+j+k));
  }
}

class inherit
{
  public static void main(String args[])
  {
    A obj1=new A(3,5);
    B obj2=new B(7);
    obj1.show();
    obj2.showsub();
  }
}


Что я уже пробовал:

Я пробовал этот код, но дал ошибку времени компиляции.

1 Ответов

Рейтинг:
0

CPallini

Класса " Б " implicitely звонков super() однако в классе A не определен конструктор без аргументов.
Вы можете либо:

  • позвоните, например, super(0,0); внутри B конструктор класса
или
  • определите конструктор без аргументов в A класс

Видеть Конструктор по умолчанию-Википедия[^].
Использование ключевого слова super (учебники Java™ > изучение языка Java & gt; интерфейсы и наследование)[^] .


Richard MacCutchan

Еще 5 за хороший ответ и за указание на мою ошибку в предыдущем вопросе.

CPallini

Спасибо, Ричард, ты слишком хороший человек!