所以我试图扩展一个employee抽象类。代码如下:
abstract class Employee
{
String firstName;
String lastName;
Employee(String firstName,String lastName)
{
this.firstName = firstName;
this.lastName = lastName;
}
public String getName()
{
String fullName = this.firstName + " " + this.lastName;
return fullName;
}
//abstract method
public abstract int getFeedback();
}
class SalesEmployee extends Employee
{
double revenue;
SalesEmployee(String firstName,String lastName,double revenue)
{
super(firstName,lastName);
this.revenue = revenue;
}
public int getFeedback(double revenue)
{
if(revenue>55)
{
return 7;
}
else if (revenue>50)
{
return 6;
}
else if (revenue>40)
{
return 5;
}
else if (revenue>30)
{
return 3;
}
else if (revenue>20)
{
return 2;
}
else
{
return 1;
}
}
}
class CoderEmployee extends Employee
{
int projects;
CoderEmployee(String firstName,String lastName,int projects)
{
super(firstName,lastName);
this.projects = projects;
}
public int getFeedback(int projects)
{
if(projects>20)
{
return 5;
}
else if (projects>15)
{
return 4;
}
else if (projects>10)
{
return 3;
}
else if (projects>5)
{
return 2;
}
else
{
return 1;
}
}
}
public class Main{
public static void main(String[] args)
{
}
}
现在,正如您所看到的,我已经在两个子类中遍历了抽象方法getFeedback。但我得到了这个错误:
/tmp/eIRGYxws7Y/CoderEmployee.java:25: error: SalesEmployee is not abstract and does not override abstract method getFeedback() in Employee
class SalesEmployee extends Employee
^
/tmp/eIRGYxws7Y/CoderEmployee.java:66: error: CoderEmployee is not abstract and does not override abstract method getFeedback() in Employee
class CoderEmployee extends Employee
那么问题是什么呢?为什么在两个子类中都编写了getFeedback方法,却引发了这个错误
抽象的getfeedback()
方法没有参数,而您的实现有一个参数。因此,它不是重写的,而是重载的。您还必须将参数添加到抽象定义中。此外,您的实现中的参数类型是不一致的,您必须使它们相互匹配或可分配。
java prettyprint-override">// in Employee
public abstract int getFeedback(double revenue);
// In SalesEmployee
public int getFeedback(double revenue) {
...
}
// In CoderEmployee
public int getFeedback(double projects) {
...
}
为什么我从下面的代码中得到这个编译错误消息? (程序根据键盘上按下的箭头键,在4个方向上移动箭头:d) Direction.java:41:错误:DirectionBoard。DirectionListener不是抽象的,并且不会覆盖KeyListener中的抽象方法keyReleated(KeyEvent)
问题内容: 我得到了几种解释,但是到目前为止,我还无法理解Java中的抽象类和方法是什么。 有人说它必须与程序的安全性做些关系,另一些人说不是那样。 即使从Dietel&Dietel的书中,我也不明白它的目的。我们何时,何地,为什么使用它? 请像您正在教初学者一样进行解释,非常感谢您的帮助。 问题答案: 抽象类是无法实例化的类。唯一的目的是扩展其他类。 抽象方法是抽象类中的方法(必须声明为抽象),
大家好,我有这个主课堂 错误:(42,8)错误:Home不是抽象的,并且不会覆盖OnFragmentInteractionListener中的onFragmentInteract(String)抽象方法 我创建了一个导航抽屉,并希望有一个新的片段来显示另一个家庭活动的内容。 Android Studio告诉我做个家。类抽象或实现抽象方法。 里面: 我那样做了,但是什么也没有改变。我不能让home类
本文向大家介绍抽象类必须要有抽象方法吗?相关面试题,主要包含被问及抽象类必须要有抽象方法吗?时的应答技巧和注意事项,需要的朋友参考一下 不需要,抽象类不一定非要有抽象方法;但是包含一个抽象方法的类一定是抽象类。 示例代码: 上面代码,抽象类并没有抽象方法但完全可以正常运行。
问题内容: 因此,我一直在为编程类编写抽象作业,但遇到了问题。我现在的目标是能够使用抽象,然后能够使用矩形和椭圆形绘制一个简单的城市,例如矩形建筑物或灯柱上的椭圆形灯。 我在编译时收到的错误是:MyTestApp.Rectangle不是抽象的,并且不会覆盖MyTestApp.Shape中的抽象方法drawEllipse(java.awt.Graphics)。该错误显示在类Shape下方的“矩形扩展
这似乎是一个基本问题。但在采访前需要澄清。 我在抽象类中有一个非抽象方法。它的具体类重写了该方法。但我想调用父类的原始方法来调用,而不是重写方法。有什么办法吗? 据我所知,没有办法调用原始方法?