Download the JDK
Search the Tutorials
Trail: Learning the Java Language
Lesson: Interfaces and Inheritance
Home Page > Learning the Java Language > Interfaces and Inheritance
Answers to Questions and Exercises: Interfaces

> ### Questions

> > Question 1: What methods would a class that implements the `java.lang.CharSequence` interface have to implement?
> > Answer 1: `charAt`, `length` and `subSequence`.

> > Question 2: What is wrong with the following interface?

> > >     public interface SomethingIsWrong {
> > >         void aMethod(int aValue) {
> > >             System.out.println("Hi Mom");
> > >         }
> > >     }

> > Answer 2: It has a method implementation in it. It should just have a declaration.

> > Question 3: Fix the interface in Question 2.
> > Answer 3:

> > >     public interface SomethingIsWrong {
> > >         void aMethod(int aValue);
> > >     }

> > Question 4: Is the following interface valid?

> > >     public interface Marker {
> > >     }

> > Answer 4: Yes. Methods are not required. Empty interfaces can be used as types and to mark classes without requiring any particular method implementations. For an example of a useful empty interface, see `java.io.Serializable.`

> ### Exercises

> > Exercise 1: Write a class that implements the `CharSequence` interface found in the `java.lang` package. Select one of the sentences from this book to use as the data. Write a small `main` method to test your class; make sure to call all four methods.
> > Answer 1: See `CharSequenceDemo.java`

> > Exercise 2: Suppose that you have written a time server, which periodically notifies its clients of the current date and time. Write an interface that the server could use to enforce a particular protocol on its clients.
> > Answer 2: See `TimeClient.java`

Previous page: Questions and Exercises: Interfaces