Мне нужно наследовать метод экземпляра из суперкласса, но я застрял.Метод Наследование и вызов
public class Pay
private float hours;
private float rate;
private int hrsStr;
float gross;
double tax;
public void calc_Payroll()
{
if (hrsStr != 0)
gross = hrsStr + ((hours - hrsStr) * 1.33f) * rate;
else
gross = hours * rate;
}
public void tax(double a)
{
if (gross <= 399.99)
tax = .92;
else
if (gross <= 899.99)
tax = .88;
else
tax = .84;
}
это часть класса супер, мне нужно иметь тот же метод подписи (???) был также вызывать налог (двойной а) и calc_payroll()
это то, что я имел для подкласса, но он не работал.
public class Payroll extends Pay
{
float net;
void calc_payroll()
{
float finaltax = (float) tax;
net = gross * finaltax;
}
}
@Override необязательно требуется, но рекомендуется. Реальная проблема заключается в том, что у вас нет такой же доступности или орфографии метода, который вы пытаетесь переопределить. (* public *, * calc_Payroll * с капиталом * P *) – DoubleDouble
@JawadLeWywadi, метод не будет отменен, если подпись будет одинаковой; аннотация @Override не является магическим исправлением. Тем не менее, это хорошая практика. Проблема заключается в том, что метод подкласса A) не такой же случайный, как суперкласс, а B) уменьшает видимость супер-метода до уровня пакета. Он должен быть объявлен как «public void calc_Payroll» – Tgsmith61591
Это были просто ребята, но спасибо. –