Как создать конструктор для подкласса - PullRequest
0 голосов
/ 09 февраля 2020
import java.util.*;

class A {

    protected int n;

    public A(int a) {
        n = a;
    }

    protected int disp() {
        return n;
    }
}

class B extends A {

    // what should i do here
}

public class Hello {

    public static void main(String[] args) {
        //Your Code Here
        int a =5;
        A obj= new B(a);
        System.out.print(obj.disp());
    }
}

Ответы [ 2 ]

2 голосов
/ 09 февраля 2020

Что важно, так это то, что A инициализируется с использованием одного из его консутрукторов. не обязательно , чтобы конструктор в дочернем классе B соответствовал параметрам конструктора (ов) в A. Следовательно, вы можете определить любой конструктор в дочернем классе B, но убедитесь, что вы вызываете super( <some int> ) в этом.

Например, даже следующее хорошо.

class B extends A {
    public B(){ //Default constructor
        super( 1 );
    }
}

Также ,

  1. Если в дочернем классе B имеется более одного конструктора, то каждый из них должен вызвать super( <some int> ).
  2. Если в родительском классе имеется более одного конструктора A, затем в конструкторе дочернего класса будет вызываться любой из них через super( <params> ).
2 голосов
/ 09 февраля 2020

Вы должны сделать следующее в B классе:

class B extends A {
  public B(final int a) {
    super(a);
  }
}

В данном случае мы вызываем конструктор нашего родителя (A)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...