Наследование в Java - “Не может найти конструктора символа”

Вы можете видеть, что несколько узлов имеют адреса типа «localhost: 10002» или «localhost: 10005». Узел AWS не сможет связаться с этими узлами по этому адресу. Вам нужно дать каждому узлу надлежащий IP-адрес, по которому они могут быть доступны через Интернет.

10
задан Charles 7 February 2013 в 10:48
поделиться

5 ответов

использовать super(customer) в InvestmentAccounts конструктор.

Java не может знать, как вызвать единственного конструктора Account имеет, потому что это не пустой конструктор. Можно опустить super() только если Ваш базовый класс имеет пустой constuctor.

Изменение

public InvestmentAccount(Person customer, int sharePrice)
{
        this.customer = customer;
        sharePrice = sharePrice;
}

кому:

public InvestmentAccount(Person customer, int sharePrice)
{
        super(customer);
        sharePrice = sharePrice;
}

это будет работать.

25
ответ дан 3 December 2019 в 15:06
поделиться

Необходимо вызвать конструктора суперкласса, иначе Java не будет знать, какого конструктора Вы называете для создания суперкласса на подклассе.

public class InvestmentAccount extends Account {
    protected int sharePrice;
    protected int numShares;
    private Person customer;

    public InvestmentAccount(Person customer, int sharePrice) {
        super(customer);
        this.customer = customer;
        sharePrice = sharePrice;
    }
}
2
ответ дан 3 December 2019 в 15:06
поделиться

Назовите супер () методом. Если Вы хотите назвать Учетную запись (Человек) конструктор, используйте оператор, супер (клиент); Также это должно быть первым statment в Вашем конструкторе InvestmentAccount

1
ответ дан 3 December 2019 в 15:06
поделиться

Необходимо вызвать конструктора базового класса явно, если базовый класс не имеет конструктора по умолчанию (один без аргументов).

В Вашем случае конструктор должен быть:

public InvestmentAccount(Person customer, int sharePrice) {
    super(customer);
    sharePrice = sharePrice;
}

И не переопределяйте customer как переменная экземпляра подкласса!

1
ответ дан 3 December 2019 в 15:06
поделиться

Любой определяет конструктора по умолчанию в Account класс:

public Account() {}

Или звоните super(customer) в InvestmentAccount конструктор.

1
ответ дан 3 December 2019 в 15:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: