打字猴:1.700479386e+09
1700479386 }
1700479387
1700479388 public void setContext(String context){
1700479389
1700479390 this.context=context;
1700479391
1700479392 }
1700479393
1700479394 //邮件都有内容
1700479395
1700479396 public String getContext(){
1700479397
1700479398 return context;
1700479399
1700479400 }
1700479401
1700479402 }
1700479403
1700479404 很奇怪,是吗?抽象类没有抽象的方法,设置为抽象类还有什么意义呢?有意义,在这里我们定义了一个这样的抽象类:它具有邮件的所有属性,但不是一个具体可以被实例化的对象。例如,你对邮件服务器说“给我制造一封邮件”,邮件服务器肯定拒绝,为什么?你要产生什么邮件?什么格式的?邮件对邮件服务器来说是一个抽象表示,是一个可描述但不可形象化的事物。你可以这样说:“我要一封标题为XX,发件人是XXX的文本格式的邮件”,这就是一个可实例化的对象,因此我们的设计就产生了两个子类以具体化邮件,而且每种邮件格式对邮件的内容都有不同的处理。我们首先看文本邮件,如代码清单33-2所示。
1700479405
1700479406 代码清单33-2 文本邮件
1700479407
1700479408 public class TextMail extends MailTemplate{
1700479409
1700479410 public TextMail(String_from,String_to,String_subject,String_context){
1700479411
1700479412 super(_from,_to,_subject,_context);
1700479413
1700479414 }
1700479415
1700479416 public String getContext(){
1700479417
1700479418 //文本类型设置邮件的格式为:text/plain
1700479419
1700479420 String context=”\nContent-Type:text/plain;charset=GB2312\n”
1700479421
1700479422 +super.getContext();
1700479423
1700479424 //同时对邮件进行base64编码处理,这里用一句话代替
1700479425
1700479426 context=context+”\n邮件格式为:文本格式”;
1700479427
1700479428 return context;
1700479429
1700479430 }
1700479431
1700479432 }
1700479433
1700479434 我们覆写了getContext方法,因为要把一封邮件设置为文本邮件必须加上一个特殊的标志:text/plain,用于告诉解析这份邮件的客户端:“我是一封文本格式的邮件,别解析错了”。同样,超文本格式的邮件也有类似的设置,如代码清单33-3所示。
1700479435
[ 上一页 ]  [ :1.700479386e+09 ]  [ 下一页 ]