1.①关键字是被abstract修饰
②抽象方法中没有方法体。
2.抽象方法是一个模板或约束,避免了子类的随意性,需要实现它的类必须重写它的抽象方法。
3.抽象类------有抽象方法的类
抽象类的关键字是:abstract
特点:①抽象类不可实例化。
②继续一个抽象类,必须要实现抽象类中的抽象方法。除非子类也是抽象类。
4.代码(图书管理系统2.0)
package com.jx.www.day0516;
import java.util.ArrayList;
import java.util.Scanner;
import com.jx.www.entity.Book;
import com.jx.www.entity.Ebook;
import com.jx.www.entity.Magazine;
/**
* 图书管理系统
* @author lenovo
*
*/
public class Library {
public static ArrayList<Book> bookList = new ArrayList<>();
private static ArrayList<Ebook> ebookList = new ArrayList<>();
private static ArrayList<Magazine> MagazineList = new ArrayList<>();
private static int n;
public static void main(String[] args) {
init();
do{
listMenu();
}while(n!=0);
System.out.println("程序退出");
}
private static void init() {
Book b1 = new Book("三国演义",52.1,400,"华夏书社","罗贯中");
Book b2 = new Book("水浒传",88.1,444,"金华书社","施耐庵");
Book b3 = new Book("西游记",55,555,"金华书社","吴承恩");
bookList.add(b1);
bookList.add(b2);
bookList.add(b3);
Ebook e1 = new Ebook("三生三世十里桃花",5.2,888,"金华公司");
Ebook e2 = new Ebook("三生三世枕上书",8.7,777,"华业公司");
Ebook e3 = new Ebook("三生三世步生莲",4.4,999,"中行公司");
ebookList.add(e1);
ebookList.add(e2);
ebookList.add(e3);
Magazine m1 = new Magazine("花火",2,40,"花火工作室");
Magazine m2 = new Magazine("爱格",3,50,"爱格工作室");
Magazine m3 = new Magazine("小说绘",5,66,"小说绘工作室");
MagazineList.add(m1);
MagazineList.add(m2);
MagazineList.add(m3);
}
/**
* 列出所有图书
*/
private static void listAllBook() {
for (Book book : bookList) {
System.out.println("书名:" +book.getName()+",出版社"+book.getPublish()+",作者"+book.getAuthor()+",价格"+book.getPrice()+",页数"+book.getPages());
}
for (Ebook book : ebookList) {
System.out.println("书名:"+book.getName()+",价格"+book.getPrice()+",出品公司"+book.getCompany()+",页数"+book.getPages());
}
for (Magazine magazine : MagazineList) {
System.out.println("书名:"+magazine.getName()+",价格"+magazine.getPrice()+",页数"+magazine.getPages()+",编辑"+magazine.getIssues());
}
}
/**
* 添加图书
*/
private static void addBook() {
System.out.println("请选择您要添加的图书:1.Book;2.Ebook;3.Magazing");
Scanner sc = new Scanner (System.in);
int n = sc.nextInt();
switch(n) {
case 1:
// System.out.println("请输入书名:");
// sc.nextLine();
// String name = sc.nextLine();
// System.out.println("请输入出版社");
// String publish = sc.nextLine();
// System.out.println("请输入作者");
// String author = sc.nextLine();
// System.out.println("请输入页数");
// int pages = sc.nextInt();
// System.out.println("输入价格:");
// double price = sc.nextDouble();
// //创建一个Book对象
// Book book = new Book(name,price,pages,publish,author);
// //添加到ArrayList中
// bookList.add(book);
Book book = new Book();
book.addBook();
break;
case 2:
System.out.println("请输入书名:");
sc.nextLine();//防止上一句nextInt()造成的bug
String eName = sc.nextLine();
System.out.println("请输入出品公司");
String company = sc.nextLine();
System.out.println("请输入价格");
double ePrice = sc.nextDouble();
System.out.println("请输入页数");
int aPages = sc.nextInt();
//创建一个EBook对象
Ebook ebook = new Ebook(eName, ePrice, aPages, company);
ebookList.add(ebook);
break;
case 3:
System.out.println("请输入书名:");
sc.nextLine();
String mName = sc.nextLine();
System.out.println("请输入编辑:");
String mIssues = sc.nextLine();
System.out.println("请输入价格");
double mPrice = sc.nextDouble();
System.out.println("请输入页数");
int mPages = sc.nextInt();
//创建一个Magazine对象
Magazine magazine = new Magazine(mName, mPrice, mPages, mIssues);
MagazineList.add(magazine);
break;
default:
break;
}
}
//代码的复用
private static void listMenu() {
System.out.println("请输入菜单序号");
System.out.println("查询图书:1");
System.out.println("添加图书:2");
System.out.println("删除图书:3");
System.out.println("检索图书:4");
System.out.println("退出程序:0");
Scanner scanner = new Scanner (System.in);
int n = scanner.nextInt();
System.out.println("您选择的功能序号是:"+n);
n = scanner.nextInt();
System.out.println("您选择了"+ n);
switch(n) {
case 1:
listAllBook();
break;
case 2:
addBook();
break;
case 3:
break;
case 4:
searchBook();
break;
default:
break;
}
}
/**
* 检索图书
*/
private static void searchBook() {
System.out.println("请输入你要查询的关键字:");
Scanner sc = new Scanner(System.in);
String keyWords = sc.nextLine();
System.out.println("您输入的关键字是:"+keyWords+",我们为您找到了下列图书:");
for (Book book : bookList) {
if(book.getName().indexOf(keyWords)>=0) {
System.out.println("书名:" +book.getName()+",出版社"+book.getPublish()+",作者"+book.getAuthor()+",价格"+book.getPrice()+",页数"+book.getPages());
}
}
for (Ebook ebook : ebookList) {
if(ebook.getName().indexOf(keyWords)>=0) {
System.out.println("书名:"+ebook.getName()+",价格"+ebook.getPrice()+",出品公司"+ebook.getCompany()+",页数"+ebook.getPages());
}
}
for (Magazine magazine : MagazineList) {
if(magazine.getName().indexOf(keyWords)>=0) {
System.out.println("书名:"+magazine.getName()+",价格"+magazine.getPrice()+",页数"+magazine.getPages()+",编辑"+magazine.getIssues());
}
}
}
}