import java.util.*; interface LibraryVisitor { (1); (2); void printSum(); } class LibrarySumPrintVisitor implements LibraryVisitor { // 打印总页数 private int sum = 0; public void visit(Book p_book) { sum = sum + p_book.getNumberOfPages(); } public void visit(Article p_article) { sum = sum + p_article.getNumberOfPages(); } public void printSum() { System.out.println("SUM = " + sum); } } interface LibraryItemInterface { (3); } class Article implements LibraryItemInterface { private String m_title; // 论文名 private String m_author; // 论文作者 private int m_start_page; private int m_end_page; public Article(String p_author, String p_title, int p_start_page, int p_end_page) { m_title = p_title; m_author = p_author; m_start_page = p_start_page; m_end_page = p_end_page; } public int getNumberOfPages() { return m_end_page - m_start_page; } public void accept(LibraryVisitor visitor) { (4); } } class Book implements LibraryItemInterface { private String m_title; // 书名 private String m_author; // 书作者 private int m_pages; // 页教 public Book(String p_author, String p_title,int p_ pages) { m_title = p_title; m_author = p_author; m_pages = p_pages; } public int getNumberOfPages() { return m_pages; } public void accept(LibraryVisitor visitor) { (5); } }