Java基础知识学习.doc

Java基础知识学习.doc

ID:32022493

大小:94.00 KB

页数:39页

时间:2019-01-30

Java基础知识学习.doc_第1页
Java基础知识学习.doc_第2页
Java基础知识学习.doc_第3页
Java基础知识学习.doc_第4页
Java基础知识学习.doc_第5页
资源描述:

《Java基础知识学习.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、合肥达内总结的几大点Java知识,供学习IT的人参考Java语言中接口优于抽象类Java语言设计提供了两种机制,可以用来定义允许多个实现的类型:接口和抽象类。因为Java只允许单继承,所以抽象类作为类型定义受到了极大的限制。现有的类可以很容易被更新,以实现新的接口。一般来说,无法更新现有的类来 扩展新的抽象类。如果你希望两个类来扩展一个抽象类,就必须把抽象类放到类型层次的高处,以便这两个类的一个祖先成为他的子类。这样会间接的 伤害到类的层次,迫使这个公共祖先的所有后代类都扩展这个新的抽象类,无论他对于这个后代类是否合适。接口是定义mixin(混合类型)的理想选择。类除了实现他的

2、“基本类型(primarytype)”之外,还可以实现这个mixin类型,以表示提供了某些可供 选择的行为。接口允许我们构造非层次结构的类型框架。包装类(wrapperclass)模式,接口使得安全地增强类的功能成为可能。通过对你导出的每个重要接口都提供一个抽象的骨架实现(skeletalimplementation)类,把这个抽象类的优点结合起来。必须认真研究接口,并确定哪些方法是最为基本的(primitive),其他的方法则可以根据他们来实现。这些基本的方法将成为骨架实现类中抽象方法 。然后,必须为接口中所有其他的方法提供具体的实现。抽象类的演变比接口的演变要容易的多。接口

3、一旦被公开发行,并且已被广泛实现,再想改变这个接口几乎是不可能的。java的动态绑定所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。java继承体系中的覆盖就是动态绑定的,看一下如下的代码:classFather{publicvoidmethod(){System.out.println("ThisisFather'smethod");}}classSon1extendsFather{publicvoidmethod(){文章出自:http://www.ahtarena.com具体详情可以百度“合肥达内”合肥达内总结

4、的几大点Java知识,供学习IT的人参考System.out.println("ThisisSon1'smethod");}}classSon2extendsFather{publicvoidmethod(){System.out.println("ThisisSon2'smethod");}}publicclassTest{publicstaticvoidmain(String[]args){Fathers1=newSon1();s1.method();Fathers2=newSon2();s2.method();}}运行结果如下:ThisisSon1'smethodThis

5、isSon2'smethod通过运行结果可以看到,尽管我们引用的类型是Father类型的,但是运行时却是调用的它实际类型(也就是Son1和Son2)的方法,这就是动态 绑定。在java语言中,继承中的覆盖就是是动态绑定的,当我们用父类引用实例化子类时,会根据引用的实际类型调用相应的方法。java的静态绑定相对于动态绑定,静态绑定就是指在编译期就已经确定执行哪一个方法。在java中,方法的重载(方法名相同而参数不同)就是静态绑定的,重 载时,执行哪一个方法在编译期就已经确定下来了。看一下代码:classFather{}classSon1extendsFather{}classSo

6、n2extendsFather{}classExecute{publicvoidmethod(Fatherfather){System.out.println("ThisisFather'smethod");}publicvoidmethod(Son1son){文章出自:http://www.ahtarena.com具体详情可以百度“合肥达内”合肥达内总结的几大点Java知识,供学习IT的人参考System.out.println("ThisisSon1'smethod");}publicvoidmethod(Son2son){System.out.println("Thisi

7、sSon2'smethod");}}publicclassTest{publicstaticvoidmain(String[]args){Fatherfather=newFather();Fathers1=newSon1();Fathers2=newSon2();Executeexe=newExecute();exe.method(father);exe.method(s1);exe.method(s2);}}运行结果如下:ThisisFather'smethodThisisFather's

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。