Я новичок в программировании на Java, завтра у меня есть тест, но до сих пор не понимаю абстрактных классов, потому что каждый из них дает мне бесконечные ошибки, я читал книги и искал в Интернете , но я чувствую себя очень разочарованным.Абстрактная ошибка класса. Причина: фактические и формальные аргументы различаются по длине
Хорошо, вот мое последнее упражнение: предполагается поздравить с юбилеем!
это абстрактный базовый класс
abstract class Pessoa
{
private int dia, mes, ano;
Pessoa (int dia, int mes, int ano)
{
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public void setDia(int dia){ this.dia = dia;}
public void setMes(int mes){ this.mes = mes;}
public void setAno(int ano){ this.ano = ano;}
public int getDia(){return dia;}
public int getMes(){ return mes;}
public int getAno(){ return ano;}
abstract int aniversario();
}
и это одно производный класс, который наследует методы
import java.util.Date;
class Cliente extends Pessoa
{
int aniversario()
{
int d = data.get(Calendar.DAY_OF_MONTH);
int m = data.get(Calendar.MONTH);
if (d== dia && m == mes)
return "Parabéns pelo seu aniversário! ";
}
}
и ошибка:
constructor Pessoa in class Pessoa cannot be applied to given types;
required: java.lang.String,int,java.lang.String,int,int,int
found: no arguments
reason: actual and formal argument lists differ in length
the operator that you use cannot be used for the
type of value you are using it for. You are either
using the wrong type here, or the wrong operator.
может быть, очевидно, но я не вижу! (пожалуйста, извините, плохой английский)
Вашего класс 'Pessoa' имеет конструктор 3 аргумента, вы не применяли его в' Cliente' класса. Просмотрите, как работает наследование. –
также проверяет, что метод 'aniversario()' возвращает 'String' вместо int. –