Java-如何将子类方法转换为超类
我有一个子类扩展了一个超类,我在子类中编写的方法(Get Insurance Cost)没有被超类识别。当按下按钮以计算保险成本时,不会发生任何事情,并且在超类中,getinsurance这些词以红色下划线-这意味着它无法找到该方法Java-如何将子类方法转换为超类,java,Java,我有一个子类扩展了一个超类,我在子类中编写的方法(Get Insurance Cost)没有被超类识别。当按下按钮以计算保险成本时,不会发生任何事情,并且在超类中,getinsurance这些词以红色下划线-这意味着它无法找到该方法 if (arg.equals("Calculate Insurance")) { String valueStr = insurancevaluetextField.getText(); value = Double.parseDouble(valu
if (arg.equals("Calculate Insurance")) {
String valueStr = insurancevaluetextField.getText();
value = Double.parseDouble(valueStr);
add (insuranceDisplayArea);
insuranceDisplayArea.setText("The insurance charge for your package is: $"
+ df.format(getInsurancecost()) + "\n");
}
超类不能从其子类运行方法。但是,可以从子类中调用超类方法。考虑重新设计你的类。 你的描述表明你得到了它: 可以在子类中使用超类的非私有方法
而不是超类中子类的方法。为了使用子类的方法,您必须创建子类的实例。如果您可以将类
包
声明为抽象
,您可以添加
public abstract double getInsurancecost();
这样,您的超类将能够调用由其子类定义的方法。可能的重复:如果您对超类定义满意,则不必重写
getCharge
。另外,它是getInsurancecost而不是getInsurance FYIII如果您的超类需要有关保险成本的信息,那么字段(及其getter和setter)的正确位置是超类,而不是子类。这似乎是一个设计问题,你真的应该重新考虑。你有一个例子,我可以这样做吗?我在这个问题上纠结了一个多星期,需要一些指导。谢谢,@Joshua,我试过你的建议,但我的ParcelTest文件中有一个错误:Parcel Parcel=new Parcel();“地块是抽象的;无法实例化”如果使用抽象,则无法再实例化地块。。。您必须使用包裹p=新的投保包裹();但我不认为这些都能帮你解决真正的问题:应用程序设计。