问题和练习答案:interface
Questions
问题 1:实现java.lang.CharSequence
interface的类必须实现什么方法?
答案 1:charAt
,length
,subSequence
和toString
。
问题 2:以下interface有什么问题?
public interface SomethingIsWrong {
void aMethod(int aValue) {
System.out.println("Hi Mom");
}
}
答案 2:其中有一个方法实现。只有默认和静态方法具有实现。
问题 3:修复问题 2 中的interface。
Answer 3:
public interface SomethingIsWrong {
void aMethod(int aValue);
}
或者,您可以将aMethod
定义为默认方法:
public interface SomethingIsWrong {
default void aMethod(int aValue) {
System.out.println("Hi Mom");
}
}
问题 4:以下interface有效吗?
public interface Marker {
}
答案 4:可以。不需要方法。空interface可以用作类型并标记类,而无需任何特定的方法实现。有关有用的空interface的示例,请参见java.io.Serializable.
Exercises
练习 1:编写一个实现java.lang
包中的CharSequence
interface的类。您的实现应将字符串 向后返回。从本书中选择其中一个句子作为数据。编写一个小的main
方法来测试您的类;确保调用所有四个方法。
答案 1:请参见CharSequenceDemo.java
练习 2:假设您编写了一个时间服务器,该服务器定期将其当前日期和时间通知给其 Client 端。编写一个服务器可以用来在其 Client 端上实现特定协议的interface。
答案 2:请参见TimeClient.java。