网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.漫谈EJB——Enterprise JavaBean.
.NaN 属性 (Global).
.如何用servlet打开非HTML格式的文.
.Java中得到一个字符串中每个字符.
.用Java编写扫雷游戏--代码思想.
.基于Java网络管理应用程序的优点.
.浅谈即时战略游戏在 J2ME 上的实.
.Jive笔记--Database Package下面.
.节点包含checkbox的Swing树控件.
.问题解决分析:StringBuffer的小问.
.程序分享:从UDDI注册中心查询服.
.Think in java 3rd 中文版11.
.Java虚拟机(JVM)对象创建浅析.
.全面分析Java的垃圾回收机制.
.在jar包中动态载入第三方jar cla.
.Java 开发中遇到的乱码问题.
.一些非常有用的JAVA常用方法.
.什么是Java?.
.Struts框架技术在J2EE中的研究和.
.Java中正则表达式使用方法详解.

《java与模式》笔记-----抽象类和接口

发表日期:2008-1-5



抽象类和接口







什么是接口:接口就是一些方法特征的集合------接口是对抽象的抽象。







什么是抽象类:抽象类对某具体类型的部分实现------抽象类是对具体的抽象。







方法特征包括:方法的名字、参数的数目、参数的类型。不包括:返回类型、参数名字、和抛出的异常。







接口是类型转换的前提、是动态调用的保证。实现某一接口就完成了类型的转换(多重继续);动态调用只关心类型,不关心具体类。







         --------------------------------------------------------------------------------------------------------------------------------------







         Java接口(抽象类)用来声明一个新的类型。







Java设计师应当主要使用接口和抽象类将软件单位与内部和外部耦合起来。







换言之,应当使用java接口和抽象类而不是具体类进行变量的类型声明、参数的类型声明、方法的返回类型声明、以及数据类型的转换等。







当然一个更好的做法是仅仅使用接口,而不是抽象类来做上面这些事情。







在理想的情况下,一个具体类应当只实现接口和抽象类中声明的方法,而不应当给出多余的方法!







接口和抽象类一般作为一个类型等级结构的起点。







接口比抽象类更为抽象所以优先使用接口声明抽象类型!







--------------------------------------------------------------------------------------------------------------------------------------







抽象类和接口







         抽象类仅提供一个类的部分实现。抽象类可以有实例变量、以及一个或多个构造函数。抽象类可以同时又抽象方法和具体方法。







         一个抽象类不会有实例,它的构造函数不能被客户端用来创建实例。一个抽象类的构造函数可以被其子类调用,从而使一个抽象类的所有子类可以有一些共同的实现,而不同的子类可以在此基础上有不同的实现。







 







接口比抽象类更为抽象所以有线使用接口声明抽象类!







抽象类是用来继续的。(具体类不是用来继续的,“只要有可能不要从具体类继续---scott meryes”)。







抽象类设计原则:







1,   抽象类应当拥有尽可能多的代码!(公用方法)。代码集中于抽象的方向。







2,   抽象类应当拥有尽可能少的数据!(公共属性)。数据集中于具体的方向。







继续复用的使用条件------- Peter Coad条件







1.        子类是超类的一个非凡种类而不是超类的一个角色!正确区分“Has-A”“Is-A”的关系。







2.        子类之间不应发生替换!?







3.        子类具有扩展超类的责任,而不是置换(Override)掉或注销(Nullify)掉的责任。







4.        只有在分类学角度上有意义时才可以使用继续,不要从具体类继续。
上一篇:《学不会的JAVA,消不了的忧愁》之五——献给那些酷爱计算机编程的人们 人气:602
下一篇:Java 5.0中实现JSR-223的方法 人气:642
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐