使用抽象方法创建接口

时间:2016-05-02 14:23:55

标签: java interface return double abstract

我要创建一个名为Payable的接口,它有一个名为getPayableAmount的抽象方法,它返回一个double并且不带参数,我是否正确地执行了此操作?正确的做法似乎很简单。不应该有退货声明或什么?当我添加一个我有一个错误

public interface Payable 
{
  abstract double getPaymentAmount();



}

2 个答案:

答案 0 :(得分:2)

您不需要在Interface方法中提供 abstract 关键字。 接口中的所有方法都是抽象方法。接口中不允许使用具体方法。

抽象类可以同时包含抽象方法具体方法。在那种情况下,我们需要指定方法是抽象方法还是具体方法。

public interface Payable 
{
    double getPaymentAmount();
}

public abstract class Payable
{
    //This is an abstract method. It has to be implemented by the extending class
    abstract public double getPaymentAmount(); 

    //This is a concrete method. It can be inherited by the extending class
    private int CalucateSum(int a, int b)
    {
        return a+b;
    }
}

答案 1 :(得分:1)

JLS说:

9.4抽象方法声明:

  

为了与旧版本的Java平台兼容,它是   作为一种风格问题,允许但不鼓励多余   为接口中声明的方法指定abstract修饰符。

您也不需要为接口方法指定public

请参阅documentation for Defining an Interface

  

接口中的所有抽象,默认和静态方法都是   隐式public,因此您可以省略public修饰符。

public interface Payable
{
  double getPaymentAmount();
}

您需要实现接口才能实际实现逻辑。例如:

public class PayableImpl implements Payable 
{
  double getPaymentAmount() 
  {
     // actual implementation that returns the payment amount
  }
}