首页 > 代码库 > 一种专门用来作父类的类——抽象类

一种专门用来作父类的类——抽象类

1.抽象类的声明:

 1 abstract class Book
 2 {
 3     String name;//属性
 4     int price;
 5     public void printName()//普通方法
 6     {
 7         System.out.println("书名:"+name);
 8     }
 9     public abstract void printPrice();//抽象方法
10 }

2.抽象类不能直接实例化:

Book book = new Book();//错误的,Book是抽象类

3.抽象方法只需声明,不需实现:

public abstract void printPrice(int price);//抽象方法

4.抽象类的使用:必须有子类。

抽象类的子类必须重写全部的抽象方法后才能被实例化。

 1 abstract class Book
 2 {
 3     String name;//属性
 4     int price;
 5     String press;
 6     public void printName(String name)//普通方法
 7     {
 8         System.out.print("书名:"+name);
 9     }
10     public abstract void printPrice(int price);//抽象方法
11 }
12 class Readers extends Book
13 {
14     public void printPrice(int price)
15     {
16         System.out.println("  价格:"+price+"元");
17     }
18 }
19 class Writer extends Book
20 {
21     public void printPrice(int price)
22     {
23         System.out.print("  价格:"+price+"元");
24     }
25     public void printPress(String press)
26     {
27         System.out.print("  出版社:"+press);
28     }
29 }
30 public class T03
31 {
32     public static void main(String[] args)
33     {
34         Readers r = new Readers();
35         Writer w = new Writer();
36         r.printName("《基督山伯爵》");
37         r.printPrice(20);
38         w.printName("《欧亨利短篇小说集》");
39         w.printPrice(30);
40         w.printPress("新华出版社");
41     }
42 }

输出结果:

书名:《基督山伯爵》 价格:20元
书名:《欧亨利短篇小说集》 价格:30元 出版社:新华出版社

5.外部抽象类不能用static声明,但内部抽象类可以。

 1 abstract class Book
 2 {
 3     public abstract void print();
 4     static abstract class Name
 5     {
 6         public abstract void getName();
 7     }
 8 }
 9 class Readers extends Book.Name
10 {
11     public void getName()
12     {
13         System.out.println("《茶花女》");
14     }
15 }
16 public class T03
17 {
18     public static void main(String[] args)
19     {
20         Book.Name name = new Readers();
21         name.getName();
22     }
23 }

6.抽象类应用——模板设计模式。

举一个例子:

现在有三类事物丈夫、妻子、儿子,这三类事物可以完成的功能如下。

丈夫:吃饭、睡觉、工作、锻炼。

妻子:吃饭、锻炼、睡觉。

儿子:吃饭、睡觉、学习。

参考文献:《Java从入门到精通》第2版。

 

一种专门用来作父类的类——抽象类