活力 JAVA 旅行一

原创 2005年03月01日 15:13:00

多态(polymorphism)也被称为动态绑定『dynamic binding』、后绑定『late binding』或运行时绑定『run-time bingding』。
它的意思是要在程序运行的时候,根据对象的类型来决定该绑定哪个方法。多态性是继数据抽象和继承之后的,面向对象的编程语言的第三个基本特性。

绑定(binding): 将方法的调用连到方法身
前绑定(early binding): 当绑定发生在程序运行之前时(就是由编译器或连接器负责)
后绑定(late binding): 在程序运行的时候,根据对象的类型来决定该绑定哪个方法。 

Shape s = new Circle(); //upcasting: 将Circle对象upcast为Shape类型
s.draw();

  1. Upcast(上传)就是把对象的reference 当作基类的reference 来用.(注:java内部是知道对象属于什么类型的)
    因为Derived class is a type of base class, 所以基类的reference (Shape s)能接受派生类(circle)的对象
  2. upcast以后,基类reference 调用的都是基类自己的method (late binding),
    除非这个method是late-bound的,也就是派生类覆写(override)了这个method, 才会根据对象类型选择相应的method(多态性).

    以上面的代码为例:s是Shape类型的reference, 除非draw()是一个动态绑定的method(派生类circle覆写了这个draw()),
    s.draw()才会调用cicle的draw(), 否则调用的都是基类Shape自己的method
  3. private和final的method都会采用early-binding, 因为他们是不能被override的。(注:private 方法自动就是final 的)

    建议别用基类的private method的名字去命名派生类的method。因为这样会让人误以为会override这个method,
    实际上private自动就是final的,不能被override。

abstract基类和interface
在一些设计方案中,你只想让基类去表示其派生出来的接口.也就是你不想让人创建一个基类的对象,而只是想把对象上传给它,以期能使用这个类的接口.编译器会阻止任何人创建abstract的对象.
interface关键词是对abstract类概念的深化,它不允许你实现任何方法.

未完。

java反射,让代码充满活力(一)

在java编程的行当中,IT攻城狮们想必对反射这个字眼并不陌生,无论是我们想要在运行状态中获取任意一个类的所有属性或者方法,还是调用任意一个对象的方法和属性,甚至是修改它的某个属性和方法,我们都可以找...
  • YSC1123
  • YSC1123
  • 2016年06月08日 11:43
  • 530

旅行商问题-A*算法-java

  • 2017年04月16日 12:16
  • 4KB
  • 下载

旅行商问题-退火算法--java

  • 2017年04月16日 12:14
  • 1KB
  • 下载

蚁群算法实现TSP(旅行商)问题(java语言)

旅行商问题,即TSP问题(Traveling Salesman Problem)是数学领域中著名问题之一。假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而...

java用遗传算法解决旅行商问题

  • 2015年10月04日 12:19
  • 8KB
  • 下载

java编写的旅行售货员问题算法

  • 2009年11月18日 20:15
  • 4KB
  • 下载

算法java实现--分支限界法--旅行售货员问题

最大团问题的java实现(优先队列式分支限界法) 具体问题描述以及C/C++实现参见网址 http://blog.csdn.net/liufeng_king/article/details...

旅行商问题-遗传算法--java

  • 2017年04月16日 12:04
  • 2KB
  • 下载

近似算法-欧几里得旅行商问题JAVA语言

1、问题描述 “旅行商问题”是指一名售货员要拜访多个地点时,如何找到从起始节拜访所有节点且仅拜访一次,最后回到起始节点的最短路径。最终形成的是一条闭合的回路,如图一所示。欧几里得旅行商问题是一种特殊...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:活力 JAVA 旅行一
举报原因:
原因补充:

(最多只允许输入30个字)