Java - 基于某些代码创建接口

时间:2012-08-10 16:29:52

标签: java interface constructor

enter image description here

嗨,我想看看我是否正确理解了这个问题。

(i)

public interface Coordinate {

    public double getDegrees();

    public double getMinutes();

    public double getSeconds();

    public String getDirection();

}

(ii)我可以使用Abstract类而不是接口,并使用Latitude类来扩展Abstract类。 (不确定为什么这有利?是因为我可以选择我想要使用的方法,而不是被迫使用已实现的方法)

(iii)public class Latitude implements Coordinate {}

(iv)public class Latitude extends Coordinate{}

2 个答案:

答案 0 :(得分:2)

-10 int不是double

'S'char而不是String

  

我可以使用Abstract类而不是接口

除了classabstract class之外,你可以使用咒语,这是不明显的。

public @interface Coordinate {
    public int getDegrees();
    public int getMinutes();
    public double getSeconds();
    public char getDirection();
}

static class Location implements Coordinate {
    @Override
    public int getDegrees() {
        return 0;
    }

    @Override
    public int getMinutes() {
        return 0;
    }

    @Override
    public double getSeconds() {
        return 0;
    }

    @Override
    public char getDirection() {
        return 0;
    }

    @Override
    public Class<? extends Annotation> annotationType() {
        return Location.class;
    }
}

答案 1 :(得分:2)

(i)仔细检查方法的返回类型。请记住,String用双引号("")括起来。用单引号括起来的是什么类型('')?

(ii)是的,这听起来像是一个很好的答案。一个优点是您可以在抽象类中提供默认实现,但不能在接口中提供。通常在Java中我们使用两者来获得两者的优势。