在百度上搜东西的时候经常看到各种大神在博客园写的文章。上午上复变函数的看阮一峰的博客集,下午呢就在看java的时候也萌生了自己写写博客的想法,于是就此开始我的博客之路吧。java学的半吊子,最近开始看thinging in java 1000页的书。 拿到的时候感到很是沉重,但是想想一天看一章不到一个月也就看完了,所以也就开始了征战java的日子,其实这可能并不算一篇博客,更像是一个摘录本,将看到的书上的文字摘录下来,以供以后查阅。
现在就开始记录多态吧 !
多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。
“封装“通过合并特征和行为来创建新的数据类型。”实现隐藏“则通过将细节”私有化“把接口和实现分离开来,继承允许将对象视为自己本身的类型或其基类型来加以处理。
对象既可以作为他自己本身的类型使用,也可以作为他的基类型使用,这种把某个对象的引用视为对其基类型的引用的做法称为向上转型。
将一个方法调用同一个方法主体关联起来被称作绑定,若在程序执行前进行绑定,叫做前期绑定,这是面向过程语言中不需要选择就默认的绑定方式。(绑定就是我们的方法知道是谁调用我们的原因,当我们调用一个方法时,编译器会将调用方法的对象座位方法的第一个参数传递给编译器)。
在运行时根据对象的类型进行绑定的方式叫后期绑定或者动态绑定抑或运行时绑定,实现后期绑定需要编译器给予某种机制的支持,以便在运行是能判定对象的类型,从而调用适当的方法。
java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定,这意味这我们不必判定他是否应该进行后期绑定----它会自动发生。
多态的缺陷:
1)覆盖私有方法:java中之后非private方法才可以被覆盖,private方法在子类中会被认为是全新的方法(所以避免在子类中出现和基类中private方法同名和方法)。
2)只有普通方法可以使用多态:在继承的关系中,字段和静态方法不会发生多态,若要在子类中调用静态方法,则使用类名调用;调用非private字段时,使用super关键字,若要使用private字段,则可以声明一个方法返回此字段。
静态方法与类关联,而并非与单个对象相关联。
构造器实际上是隐式的static方法。
复杂对象调用构造器遵照下面的顺序:
1)调用基类构造器
2)按声明顺序调用成员的初始化方法
3)调用导出类构造器主体
在一般方法的内部,动态绑定的调用是在运行时才决定的。
初始化的实际过程是:
1)在其他任何事务发生之前,将分配给对象的存储空间初始化为二进制的零。
2)调用积基累构造器
3)按照声明的顺序调用成员的初始化方法
4)调用导出类的构造器主体
原文:http://www.cnblogs.com/tianfawei/p/5048795.html