父级中的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方法占位符在子级中使用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

javascript 从父级中的子级渲染节点更新

从父级中的子级访问元素标记名

仅展开父级中的子级 div

PHP在父级中访问子级的私有属性

Swift didSet for var 使用 @Binding 在子级中更改

Spring data JPA:如何启用级联删除而不引用父级中的子级?