问题和练习答案:interface

Questions

问题 1:实现java.lang.CharSequenceinterface的类必须实现什么方法?
答案 1:charAtlengthsubSequencetoString

问题 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包中的CharSequenceinterface的类。您的实现应将字符串 向后返回。从本书中选择其中一个句子作为数据。编写一个小的main方法来测试您的类;确保调用所有四个方法。
答案 1:请参见CharSequenceDemo.java

练习 2:假设您编写了一个时间服务器,该服务器定期将其当前日期和时间通知给其 Client 端。编写一个服务器可以用来在其 Client 端上实现特定协议的interface。
答案 2:请参见TimeClient.java