我需要帮助来创建一个java方法,我需要在父级中创建一个没有任何返回的方法,并在具有不同条件的子级中使用相同的方法。我知道有一种方法可以做到这一点,但我不记得了,任何帮助将不胜感激。
public abstract class Property // this is the class name, which is parent
这就是我应该做的
public abstract double calculateTax()
{
return ;
}
我对 child 使用同样的方法,但这是我必须改变的标准
计算商业地产税(第一个 child )
如果平方英尺大于 1500,则如果州代码为 TX,则税收为市场值(value) * .25,否则税收为市场值(value) * .20 否则,如果平方英尺小于或等于 1500,则税收为市场值(value)值 * .10
计算住宅属性(property)税
是 0.5 * 市场值(value),如果洪泛区是真实的,税收是额外的 10%。
我知道我缺少数据,但我只是想知道如何的概念
最佳答案
使用抽象类的简单示例,同时牢记 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"; }
}
这里的想法:
- 您使用抽象方法声明来指示扩展类必须为此类方法“添加”行为。
- 准确地说:声明为抽象的方法没有有主体。没有声明,没有返回,什么都没有!
- 您仍然“固定”您想要在基类中拥有的行为......就在那里。并且您可以阻止子类改变该行为。
在我的示例中,抽象方法返回一个字符串;只是为了让这个例子更有意义。当然,抽象方法可以具有您希望它们具有的任何签名。郑重声明:当重写子类中的方法时,不要忘记添加 @Override 注释!
关于父级中的 Java 方法占位符可在子级中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39443068/