嗨,我想看看我是否正确理解了这个问题。
(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{}
答案 0 :(得分:2)
-1
和0
int
不是double
'S'
是char
而不是String
我可以使用Abstract类而不是接口
除了class
和abstract 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中我们使用两者来获得两者的优势。