Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
问题1:实现 java.lang.CharSequence
接口的类必须实现哪些方法?
答案1:charAt
,length
,subSequence
和 toString
。
问题2:以下接口有什么问题?
public interface SomethingIsWrong { void aMethod(int aValue) { System.out.println("Hi Mom"); } }
答案2:它有一个方法实现。只有默认和静态方法才能有实现。
问题3:修复问题 2 中的接口。
答案3:
public interface SomethingIsWrong { void aMethod(int aValue); }
或者,你可以将 aMethod
定义为默认方法:
public interface SomethingIsWrong { default void aMethod(int aValue) { System.out.println("Hi Mom"); } }
问题4:以下接口是否有效?
public interface Marker { }
答案4:对。方法不是必需的。空接口可以用作类型和标记类,而无需任何特定的方法实现。有关有用的空接口的示例,请参阅 java.io.Serializable.
练习1:编写一个实现 java.lang
包中的 CharSequence
接口的类。你的实现应该向后返回字符串。选择本书中的一个句子作为数据。写一个小的 main
方法来测试你的类;确保调用所有四种方法。
答案1:参见 CharSequenceDemo.java
练习2:假设你已经编写了一个时间服务器,它会定期通知客户当前的日期和时间。编写一个服务器可用于在其客户端上强制执行特定协议的接口。
答案2:请参阅 TimeClient.java
。