首页 \ 问答 \ 多态性术语(Polymorphism Terminology)

多态性术语(Polymorphism Terminology)

我看了,我看了,找不到我正在寻找的学术答案。

如果方法是多态的:

public class Widget
{
    public void doSomething()
    {
        // ...
    }

    public void doSomething(int fizz)
    {
        // ...
    }
}

...然后doSomething可以说是类Widget多态方法 。 我正在寻找在提到多态方法的不同变体时使用的学术/数学术语。 例如,在化学中,你有同位素的概念,它是原子的变体,只有不同数量的中子。 我想能够说doSomething(int)doSomething(int)x ,就像Tritium是氘的同位素一样。

什么是两种方法的正确术语,这两种方法是彼此的多态...只是多态? 多态共轭物??!?

我知道在某个地方,有人知道答案。


I've looked and I've looked, and can't find the academic answer I'm looking for.

If a method is polymorphic:

public class Widget
{
    public void doSomething()
    {
        // ...
    }

    public void doSomething(int fizz)
    {
        // ...
    }
}

... then doSomething can be said to be a polymorphic method of class Widget. I am looking for the academic/mathematical term to use when referring to the different varieties of a polymorphic method. For instance, in chemistry you have the concept of isotopes which are variants of atoms that simply have different numbers of neutrons. I want to be able to say that doSomething(int) is an x of doSomething(), much like Tritium is an isotope of Deuterium.

What's the correct terminology for two methods that are polymorphs of one another....just polymorphs? Polymorphic conjugates??!?

I know that somewhere, somebody knows the answer to this.


原文:https://stackoverflow.com/questions/7236128
更新时间:2019-09-11 08:42

最满意答案

Overloaded method 。 看看这篇 wiki文章。

更新: 如何从doSomething()的上下文中引用doSomething(int)
在像C ++ / C#/ Java这样的语言中,它是常见的模式:

public class Widget
{
    public void doSomething()
    {
        // ...
        int default = 42;
        this.doSomething(default);
    }

    public void doSomething(int fizz)
    {
        // ...
    }
}

Overloaded method. Look at this wiki article.

Updated: how do I refer to doSomething(int) from the context of doSomething()
In languages like C++/C#/Java it is common pattern:

public class Widget
{
    public void doSomething()
    {
        // ...
        int default = 42;
        this.doSomething(default);
    }

    public void doSomething(int fizz)
    {
        // ...
    }
}
2011-08-29

相关问答

更多

编程术语(Programming Terminology)

我在阅读Code Complete 2时第一次遇到这个概念。 我认为您要查找的术语是该书中的“跨度”,它明确指出了对变量引用之间的行数。 在我的解释中,连续行中声明和使用的变量的跨度为0。 这个概念对于其他变量的引用也是可重用的,以便给出更广泛的可维护性度量 - 声明和首次使用之间的间隔可以是0,但是如果变量在100行后再次使用,那仍然是非常讨厌的。 I came across this concept for the first time whilst reading Code Complete ...

参数多态性与Ad-hoc多态性(Parametric polymorphism vs Ad-hoc polymorphism)

根据TAPL ,§23.2: 参数多态性(...)允许使用变量代替实际类型“统一”地键入单个代码段,然后根据需要使用特定类型进行实例化。 参数定义是统一的:它们的所有实例表现相同。 (......) 相反,Ad-hoc多态性允许多态值在不同类型的“查看”时显示不同的行为。 ad-hoc多态性最常见的例子是重载,它将单个函数符号与许多实现相关联; 编译器(或运行时系统,取决于重载解析是静态的还是动态的)根据参数的类型为函数的每个应用程序选择适当的实现。 因此,如果考虑连续的历史阶段,非泛型官方Jav ...

Java中的动态和静态多态性有什么区别?(What is the difference between dynamic and static polymorphism in Java?)

多态性 1.静态绑定/编译时绑定/早期绑定/方法重载(同一类) 2.动态绑定/运行时绑定/后期绑定/覆盖方法(在不同的类中) 重载示例: class Calculation { void sum(int a,int b){System.out.println(a+b);} void sum(int a,int b,int c){System.out.println(a+b+c);} public static void main(String args[]) {

SICP术语:计算对象(SICP terminology: computational object)

我认为你强调的文本中的关键是: 编程语言的一个关键方面是它提供了使用名称来引用计算对象的方法。 我们说该名称标识了一个值为对象的变量 。 “计算对象”是可以是变量值的任何东西。 将其称为“计算对象”,只是简单地称为“对象”,这可能只会增加一些混淆,因为从上下文中可能很清楚非计算对象(例如,一张纸)不能是程序中的变量。 但是,有些事情与计算对象无关。 例如,在Scheme中,变量不是计算对象; 你不能将变量存储在另一个变量中。 在某些语言中,变量或指针至少是计算对象, 可以是变量的值。 在文中的定义 ...

Git - 掌握术语[关闭](Git - Mastering Terminology [closed])

在DVCS中学习一个非常重要的术语是上游 : 请参见“ 下游”和“上游”的定义 考虑到CVCS(集中式VCS)和DVCS(分布式VCS)之间工作流程的差异,认识到你有许多“上游”回购( 可以从中获取回购)是关键。 另一个想要掌握的概念是“ rebase vs. merge ”。 One term very important to learn in a DVCS is upstream: See "Definition of “downstream” and “upstream”" Conside ...

多态性vs覆盖与超载(Polymorphism vs Overriding vs Overloading)

表达多态的最清晰方式是通过抽象基类(或接口) public abstract class Human{ ... public abstract void goPee(); } 这个类是抽象的,因为goPee()方法不能goPee()定义。 男性和女性只能定义子类。 此外,人类是一个抽象的概念 - 你不能创造一个既不是男性也不是女性的人。 它必须是一个或另一个。 所以我们推迟使用抽象类的实现。 public class Male extends Human{ ... @Over ...

WPF样式和多态性(WPF Styles and Polymorphism)

您可以使用BasedOn属性将Style基于另一个(仅一个!) Style并覆盖特定属性,但不能将DataTemplate或ControlTemplate基于另一个模板。 这不支持。 模板必须被定义为一个整体: WPF:有没有办法在不重新定义整个样式的情况下覆盖ControlTemplate的一部分? You can base a Style on Another (one only!) Style using the BasedOn property and override specific ...

缓存优化和多态性(Cache Optimization and Polymorphism)

为什么要创建自己的班级? 您无需重新创建unordered_map的界面。 该功能可以作为基于std::function和std::unordered_map的可重用算法添加。 自从我使用可变参数模板以来,这已经有一段时间了,但我希望你明白。 template<typename Ret, typename... Args> std::function<Ret(Args...)> memoize(std::function<Ret(Args...)> t) { std::unordered ...

相关文章

更多

最新问答

更多
  • .net Rx:消息的有序批处理(.net Rx: in-order batch-processing of messages)
  • 查询在给定区域中包含全景图的商业场所的api?(Query places api for business venues in given area which contain panoramas?)
  • linux启动的时候的两条进度条各表示在加载什么?
  • 测试是否已存在某些内容(Testing if something already exists)
  • iOS7和jQuery mobile:面板在打开和关闭后变为空白(iOS7 and jQuery mobile: panel goes blank once opened and closed)
  • 在Spring中结合GET和POST请求方法(Combine GET and POST request methods in Spring)
  • 从Geany内部运行应用程序的多个实例(Run multiple instances of an application from inside Geany)
  • 使用Yii2在邮件中嵌入图像时出错(Error when embed image in mail using Yii2)
  • 带有不同频率的LED计数器程序(0 - 15)(Led Counter Program (0 - 15) with different frequencies)
  • Google支持SAML 2.0 ECP(Google support for SAML 2.0 ECP)
  • 如何识别结构构件的尺寸?(How can i identify the size of structure member?)
  • 带有计数器的列表迭代中的Netlogo列表(Netlogo list in list iterations with counter)
  • Eclipse CDT中对函数的未定义引用(undefined reference to function in Eclipse CDT)
  • 如何确定一个类是否是java中接口的实现(How to determine if a class which is an implemenation of an interface in java)
  • Wireshark捕获过滤器示例(Wireshark Capture Filter Example)
  • 什么是NoSQL?(What exactly is NoSQL?)
  • 如何在sass中编写媒体查询?(How to write media queries in sass?)
  • spring destroy-method +请求范围bean(spring destroy-method + request scope bean)
  • ssis包中全局表的范围(Scope of Global Table in ssis package)
  • 如何在较小的屏幕上禁用Bootstrap的“词缀”?(How can I disable Bootstrap's “affix” on smaller screens?)
  • SQLite Min函数在使用String数据的行中返回NULL(SQLite Min function returns NULL in row with String data)
  • 如何在Cordova中更新应用程序版本(How to update app version in Cordova)
  • 当我在while循环中使用char []读取Android中的文本文件时出现重复行(repeated lines when I use char[] in while loop for reading text file in Android)
  • 有没有办法按顺序打印数组,在[TCL]中输入条目(Is there a way to print array in order with entries entered in that [TCL])
  • 如何在倒排索引结构中搜索短语查询?(How to search phrase queries in inverted index structure?)
  • 导致在WCF中返回HTTP错误状态(Causing HTTP error status to be returned in WCF)
  • qsqltablemodel不兼容的数据类型(qsqltablemodel incompatible data types)
  • 如何在没有包的情况下引用Java文件?(How can I reference Java files without packages?)
  • Rails 4.1.1相关模型属性,嵌套表单不保存(Rails 4.1.1 related model attribute with nested form not saving)
  • 如何将byte []转换成字符串?(How to convert UTF-8 byte[] to string?)