【发布时间】:2019-03-30 16:21:14
【问题描述】:
// 物品类
import java.io.*;
interface Item {
void read();
void show();
}
class Book implements Item {
String name,author,publication;
public void read() {
Console con = System.console();
System.out.println("Enter Name of the Book:");
name = con.readLine();
System.out.println("Enter Author Name:");
author = con.readLine();
System.out.println("Enter Publication of the book:");
publication = con.readLine();
}
public void show() {
System.out.println("List Of Issued Items");
System.out.println("Name :"+name);
System.out.println("Author :"+author);
System.out.println("Publication :"+publication);
}
}
class Dvd implements Item {
String dname,director,category;
public void read() {
Console con = System.console();
System.out.println("Enter Name of the dvd ");
dname = con.readLine();
System.out.println("Enter Director Name");
director = con.readLine();
System.out.println("Enter Category of the dvd: ");
category = con.readLine();
}
public void show() {
System.out.println("List Of Issued Items");
System.out.println("Name :"+dname);
System.out.println("Director :"+director);
System.out.println("Category :"+category);
}
}
库类
import java.io.*;
class Library {
public static void main(String args[]) {
Console con = System.console();
Item arr[] = new Item[2];
Item a;
for(int i=0;i<arr.length;i++) {
System.out.println("Enter Your Choice : < b / d >");
String ch = con.readLine();
switch(ch) {
case "b":
a = new Book();
a.read();
a.show();
break;
case "d":
a = new Dvd();
a.read();
a.show();
break;
default:
System.out.println(" You Enetred The Wrong Choice !!!");
}
}
}
}
在这段代码中,我创建了两个类,即 Item 和 Libraryy 。 在运行时动态绑定已成功完成,但在读取任何选项后它会同时显示结果,我想先输入所有选项后显示所有结果。
为了存储引用,我使用了存储我选择类型的引用的数组。
【问题讨论】:
-
在数组中存储引用不能正常工作,您需要将它们存储到数组索引中。 arr[i] = 新书(); arr[i].read();