首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚型多态元件

亚型多态元件
EN

Stack Overflow用户
提问于 2016-10-05 16:24:53
回答 1查看 3K关注 0票数 1

我刚从java开始。只是为了确保我能正确地解释这一点,并理解术语。看起来,子类型多态性将由两个组件组成,多态对象和多态方法。

我的问题是,所以Animal a = new Dog();将是多态对象,而重写多态方法的方法是多态方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-05 17:49:49

多态性是编程语言的一个特性,它允许例程使用不同类型的变量。如果可以同时使用不同类型的代码,那么有些代码是多态的。多态代码越多越好。

有两种类型的多态性-通用ad

  1. 在通用多态下,一种类型可以使用无限的其他类型(例如,toString()方法适用于任何引用类型);
  2. 在ad多态性下,它使用的类型数量是预先知道的(例如,f(int)可以与int__、byte__、shortchar一起使用)。

有三种类型的即席多态性:

  1. 拓宽原语转换(例如,接受double的方法也可以接受7个原语中的任意一个);
  2. 操作符重载(在Java中不存在用户重载操作符,在其他语言中是这样的,例如+符号可以重载);
  3. 重载是一种特性,它允许类具有多个具有相同名称的方法,如果它们的参数列表不同。

有两种通用多态性类型-参数多态性和亚型多态性:

  1. 参数多态性(又名Generics)是一个未确定类型的类(TE字符,可以用任何类型替换)。
  2. 子类型多态性-是指由于继承(当我们从某个类继承时,在方法签名中可以编写超类并放置在任何子类中)。如果没有虚拟方法,这种子类型机制就无法工作。

所有的静态方法都是非虚拟的,所有的非静态方法都是虚拟的.

Virtual --是类的一个方法,它可以在子类中以在运行时定义方法调用的具体方法实现的方式被重写。然后,开发人员不必知道使用虚拟方法处理对象的确切类型:只需知道对象是类的实例或类的子类,就可以声明该方法。

虚拟方法是多态实现的重要途径。它们允许创建一个泛型代码,可以应用于基类以及他的任意子类的对象。同时,基类定义了与对象协调的方法,它的任何后代都可以有这种方式的具体实现。

也可以通过使用继承来实现多态,因为如果我们有父类和子类,并且我们有父类的代码,那么我们也可以将它与子类一起使用(例如,接受java.lang.Object的方法可以接受任何其他类型)。

一个可以使用虚拟函数操作的对象称为多态对象

方法重写不被认为是多态。签名多态方法是一种可以使用各种不同的调用签名和返回类型进行操作的方法。

这是多态性的一个很好的例子:

代码语言:javascript
复制
Animal a = new Dog();

在您的示例中,aAnimal类型对Dog类型对象的引用。

编译器检查表达式的左侧部分,JVM基于右部分工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39879235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档