正在加载图片...
合适的方法的机制。也就是说,编译器还是不知道对象的类型,但是方法 的调用机制会找出,并且调用正确的方法。后绑定机制会随语言的不同而 不同,但是你可以设想,对象里面必定存有“它属于哪种类型”的信息。 除了 static和fina方法( private方法隐含有 final的意思),Jav 的所有的方法都采用后绑定。也就是说,通常情况下你不必考虑是不是应 该采用后绑定——它是自动的 为什么要声明 final方法?我们在上一章指出,这样可以禁止别人覆写那 个方法。不过,更重要的可能还是要“关闭”它的动态绑定,或者更确切 的说,告诉编译器这里不需要使用后绑定。这样编译器就能为 final方法 生成稍微高效一些的调用代码。然而在绝大多数情况下,这种做法并不会 对程序的总体性能产生什么影响,因此最好还是只把fina当作一种设计 手段来用,而不要去考虑用它来提高性能。 产生正确的行为 旦知道Java通过后绑定实现了多态的方法调用,你就可以只编写同基 类打交道的代码了。因为你知道所有的派生类也能正确地使用这些代码。 或者换一个说法,你“向对象发一个消息,让它自己判断该做些什么。 形状”就是讲解OOP的一个经典的例子。它看起来直观,因此被广 泛使用,但是不幸的是,这会让新手误以为OoP只是用来处理图像编程 的,这显然不对。 在这个例子中,基类被称作 Shape,它有好几个派生类: Circle, Square, Triangle,等等。这个例子之所以好,是因为我们能很自然 地说“圆形是一种形状”,而听的人也能明白。下面的继承关系图体现了 这种关系 Shape nheritance draw erase Circle quare Triangle Cird draw) draw( eterenceerase() erase( erase 第6页共29页 www.wgqqh.com/shhgs/tij.htmlChapter 7: Polymorphism 第 6 页 共 29 页 www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.com 合适的方法的机制。也就是说,编译器还是不知道对象的类型,但是方法 的调用机制会找出,并且调用正确的方法。后绑定机制会随语言的不同而 不同,但是你可以设想,对象里面必定存有“它属于哪种类型”的信息。 除了 static 和 final 方法(private 方法隐含有 final 的意思),Java 的所有的方法都采用后绑定。也就是说,通常情况下你不必考虑是不是应 该采用后绑定——它是自动的。 为什么要声明 final 方法?我们在上一章指出,这样可以禁止别人覆写那 个方法。不过,更重要的可能还是要“关闭”它的动态绑定,或者更确切 的说,告诉编译器这里不需要使用后绑定。这样编译器就能为 final 方法 生成稍微高效一些的调用代码。然而在绝大多数情况下,这种做法并不会 对程序的总体性能产生什么影响,因此最好还是只把 final 当作一种设计 手段来用,而不要去考虑用它来提高性能。 产生正确的行为 一旦知道 Java 通过后绑定实现了多态的方法调用,你就可以只编写同基 类打交道的代码了。因为你知道所有的派生类也能正确地使用这些代码。 或者换一个说法,你“向对象发一个消息,让它自己判断该做些什么。” “形状” 就是讲解 OOP 的一个经典的例子。它看起来直观,因此被广 泛使用,但是不幸的是,这会让新手误以为 OOP 只是用来处理图像编程 的,这显然不对。 在这个例子中,基类被称作 Shape,它有好几个派生类:Circle, Square,Triangle,等等。这个例子之所以好,是因为我们能很自然 地说“圆形是一种形状”,而听的人也能明白。下面的继承关系图体现了 这种关系:
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有