父级中的Java方法占位符在子级中使用[重复]
Posted
技术标签:
【中文标题】父级中的Java方法占位符在子级中使用[重复]【英文标题】:Java method place holder in parent to use in children [duplicate] 【发布时间】:2017-01-19 11:07:35 【问题描述】:我需要帮助来创建一个 java 方法,我需要在父级中创建一个没有任何返回的方法,并在具有不同标准的子级中使用相同的方法。我知道有办法做到这一点,但我不记得了,任何帮助将不胜感激。
public abstract class Property // this is the class name, which is parent
这就是我应该做的事情
public abstract double calculateTax()
return ;
我已经在孩子身上使用同样的方法,但这是我必须改变的标准
calculateTaxes for CommercialProperty(第一个孩子)
如果平方英尺大于 1500,则如果州代码为 TX,则税为市场价值 * .25 否则税为市场价值 * .20 否则,如果平方英尺小于或等于 1500,则税为市场值 * .10
calculateTaxes 的 ResidentialProperty
是 0.5 * 如果洪水区是真实的,市场价值是额外的 10%。
我知道我错过了数据,但我只是想知道如何做的概念
【问题讨论】:
您要创建abstract method吗? 抽象方法没有主体。 @4castle 我想就是这样,我再次编辑了我的问题,希望它更有意义,谢谢 解释“不同的标准”?? joho:请参阅我的答案 - 您的代码示例只包含错误的语法。 abstract 翻译为:没有正文! 【参考方案1】:一个使用 abstract 类的简单示例,同时记住 Open/Closed principle 如下所示:
abstract class A
protected abstract String getFoo();
public final bar()
System.out.println("The foo: " + getFoo());
class B extends A
@Override
protected String getFoo() return "whatever";
这里的想法:
-
您使用 abstract 方法声明来指示扩展类必须为此类方法“添加”行为。
确切地说:声明为abstract的方法不有主体。没有陈述,没有回报,什么都没有!
你仍然“固定”你希望在你的基类中拥有的行为......就在那里。并且您可以防止子类改变这种行为。
在我的示例中,抽象方法返回一个字符串;只是为了使示例更有意义。当然,抽象方法可以具有您希望它们具有的任何签名。记录一下:当覆盖子类中的方法时,不要忘记将@Override注解放在适当的位置!
【讨论】:
最好包含抽象方法没有主体。 OP似乎不理解这个概念。无论如何,到处都是很好的答案! 照做了,谢谢建议!以上是关于父级中的Java方法占位符在子级中使用[重复]的主要内容,如果未能解决你的问题,请参考以下文章