描述
【描述】
定义传播媒体类Media为抽象类,其属性包括:id即书号或刊号,title即名称。方法包括:抽象方法showInformation(),显示当前对象的属性值;静态方法showType(),显示当前对象的类型,如“Book”或“Newspaper”。类Book、类Newspaper都是Media的子类,Bool类特有的属性包括:press即出版社,author即作者。在测试类中创建Book和Newspaper的对象,显示每个对象的类型,并显示每个对象的信息。
【输入】
输入书的书号、名称、出版社和作者;
输入新闻期刊的刊号、名称。
【输出】
书的信息
新闻期刊的信息
【输入示例】
ISBN:9787121403101 Java程序设计 电子工业出版社 姜志强
CN11-101 北京日报
【输出示例】
ID: ISBN:9787121403101, Title: Java程序设计, Press: 电子工业出版社, Authors: 姜志强
ID: CN11-101, Title: 北京日报
import java.util.Scanner;
abstract class Media {
protected String id;
protected String title;
public Media(String id, String title) {
this.id = id;
this.title = title;
}
public abstract void showInformation();
public static void showType() {
}
}
class Book extends Media {
private String press;
private String authors;
public Book(String id, String title, String press, String authors) {
super(id, title);
this.press = press;
this.authors = authors;
}
@Override
public void showInformation() {
System.out.println("ID: " + id + ", Title: " + title + ", Press: " + press + ", Authors: " + authors);
}
public static void showType() {
System.out.println("Type: Book");
}
}
class Newspaper extends Media {
public Newspaper(String id, String title) {
super(id, title);
}
@Override
public void showInformation() {
System.out.println("ID: " + id + ", Title: " + title);
}
public static void showType() {
System.out.println("Type: Newspaper");
}
}
public class Test03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String id = input.next();
String title = input.next();
String press = input.next();
String authors = input.next();
displayObject(new Book(id, title, press, authors));
id = input.next();
title = input.next();
displayObject(new Newspaper(id, title));
input.close();
}
public static void displayObject(Media media) {
Media.showType();
media.showInformation();
}
}