知识卡片
操作与方法的区别
内容
操作(operation)和方法(method)常被混用,但严格来说不同:操作是对象上可调用的例程声明,方法是该例程的具体实现体。多态场景下差异会暴露——若超类型的getPrice操作被3个子类型分别覆盖,系统里只有1个操作,却对应4个实现(超类1个+子类3个)。讨论调用了什么说的是操作,讨论具体执行了哪段代码说的是方法,多态成立正是因为同一操作运行时能绑定到不同方法。
参考来源
- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第3章《类图:基础》(源文件:_epub-src/EPUB/2.xhtml)
- 结论依据:原文明确"操作(operation)是对象上可以调用的某些东西——例程声明——而方法(method)是例程体。在多态情况下,这两者是不同的。如果一个超类型有3个子类型,每一个子类型都覆盖超类型的getPrice操作,你有一个操作和4个实现它的方法"。
- 原始内容:操作和方法的另一个区别是:操作(operation)是对象上可以调用的某些东西——例程声明——而方法(method)是例程体。在多态情况下,这两者是不同的。如果一个超类型有3个子类型,每一个子类型都覆盖超类型的getPrice操作,你有一个操作和4个实现它的方法。