12.1.2 抽象的综合实例
图 12.1 抽象分析图
【实例12.2】本节将列举一个包含前面很多知识点的综合实例,其中有接口、抽象、继承等概念。下面先了解这个综合实例的流程,如图12.2所示。
图 12.2 抽象综合实例的流程图
上面流程图所对应的代码如下所示。
01 ///这是一个主运行类
02 ///通过构造函数创建f1和f2两个花的对象
03 ///通过设置器分别设置两个对象的参数
04 ///通过tostring输出对象
05 public class flowertest
06 {
07 public static void main(String[]args)
08 {
09 flower1 f1=new flower1();
10 flower1 f2=new flower1();
11 f1.setcolor("红色");
12 f1.setname("牡丹");
13 f1.setcountry("中国");
14 f1.setcity("沈阳");
15 f2.setcolor("黄色");
16 f2.setname("玫瑰");
17 f2.setcountry("美国");
18 f2.setcity("拉斯维加斯");
19 System.out.println(f1.tostring());
20 System.out.println(f2.tostring());
21 }
22 }
23 ///这是一个花的接口
24 ///其中的方法没有被实现
25 interface flower
26 {
27 void setcolor(String color1);
28 void setname(String name);
29 String getcolor();
30 String getname();
31 }
32 ///这是一个花的类,实现了上面的那个接口
33 ///通过设置器来设置对象的参数
34 ///通过访问器来获得对象的参数
35 ///通过tostring方法来让对象以字符串的形式输出
36 class flowers implements flower
37 {
38 private String color1;
39 private String name;
40 public void setcolor(String color1)
41 {
42 this.color1=color1;
43 }
44 public void setname(String name)
45 {
46 this.name=name;
47 }
48 public String getcolor()
49 {
50 return color1;
51 }
52 public String getname()
53 {
54 return name;
55 }
56 public String tostring()
57 {
58 String information="花的名称是:"+name+";"+""+"花的颜色是:"+color1;
59 return information;
60 }
61 }
62 ///这是一个花的类,继承了上面的那个类
63 ///通过设置器来设置对象的参数
64 ///通过访问器来获得对象的参数
65 ///通过tostring方法来让对象以字符串的形式输出
66 class flower1 extends flowers
67 {
68 private String country;
69 private String city;
70 public void setcountry(String country)
71 {
72 this.country=country;
73 }
74 public void setcity(String city)
75 {
76 this.city=city;
77 }
78 public String getcountry()
79 {
80 return country;
81 }
82 public String getcity()
83 {
84 return city;
85 }
86 public String tostring()
87 {
88 String information=super.tostring()+""+"这种花出自的国家:"+country+";
89 "+""+"出自的城市:"+city;
90 return information;
91 }
92 }
【代码说明】第5~22行是主运行程序,第25~31行定义一个接口flower,第36~61行定义了一个类flowers实现接口flower。第66~92行定义了一个类flower1继承类flowers。
【运行效果】
花的名称是:牡丹;花的颜色是:红色这种花出自的国家:中国;出自的城市:沈阳
花的名称是:玫瑰;花的颜色是:黄色这种花出自的国家:美国;出自的城市:拉斯维加斯
这个程序通过抽象的思维方式,将花类抽象成只有两个属性的类,一个是颜色,一个是名称。如果要涉及个性,就使用继承的关系,或覆盖的方法来创建其他的类。其实抽象只是一个思路,不是一个具体的概念。养成抽象的思维方式,对于开发工作十分重要。