是的,您可以在接口内定义一个类。通常,如果接口的方法使用此类,并且在其他地方不使用它,则将在接口内声明一个类。
interface Library { void issueBook(Book b); void retrieveBook(Book b); public class Book { int bookId; String bookName; int issueDate; int returnDate; } } public class Sample implements Library { public void issueBook(Book b) { System.out.println("Book Issued"); } public void retrieveBook(Book b) { System.out.println("Book Retrieved"); } public static void main(String args[]) { Sample obj = new Sample(); obj.issueBook(new Library.Book()); obj.retrieveBook(new Library.Book()); } }
输出结果
Hello welcome to nhooo
如果我们需要提供接口的默认实现,我们将在接口内部定义一个类,如下所示:
interface Library { void issueBook(Book b); void retrieveBook(Book b); public class Book implements Library { int bookId; String bookName; int issueDate; int returnDate; public void issueBook(Book b) { System.out.println("book issued"); } public void retrieveBook(Book b) { System.out.println("book retrieved"); } } } public class Sample { public void demo() { System.out.println("Hello welcome to nhooo"); } public static void main(String args[]) { Sample obj = new Sample(); obj.demo(); } }