gpt4 book ai didi

java - 亚型多态性成分

转载 作者:行者123 更新时间:2023-12-02 03:18:58 24 4
gpt4 key购买 nike

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

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

最佳答案

多态性是编程语言的一项功能,允许例程使用不同类型的变量。如果某段代码可以同时使用某些不同的类型,则该代码是多态的。 多态代码越多越好

多态性有两种类型 - 通用临时:

  1. 在通用多态性下,一种类型可以使用无数其他类型(例如toString()方法适用于任何引用类型);
  2. 在临时多态性下,它所使用的类型数量是预先已知的(例如,f(int) 可以与 int 一起使用字节字符)。

有三种类型的临时多态性:

  1. 扩大基元转换(例如,接受 double 的方法也可以接受 7 个基元中的任何一个);
  2. 运算符重载(在 Java 中,用户不会重载运算符,但在其他语言中却存在,例如 + 符号可以重载 );
  3. 重载是一项功能,允许一个类拥有多个同名的方法(如果它们的参数列表不同)。

有两种通用多态类型——参数多态和子类型多态:

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

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

虚拟方法 – 是类的方法,可以在子类中重写,方法调用的具体方法实现将在运行时中定义。然后,开发人员无需知道对象的确切类型即可使用虚拟方法来使用该对象:只需知道该对象是声明此方法的类或类的子类的实例即可。

虚方法是多态性实现的非常重要的方式。它们允许创建可应用于基类及其任何子类的对象的通用代码。同时基类定义了与对象协调的方式,它的任何后代都可以有这种方式的具体实现。

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

<小时/>

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

并且方法重写不被视为多态性。签名多态方法是一种可以使用多种调用签名和返回类型中的任何一种进行操作的方法。

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

Animal a = new Dog();

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

编译器检查表达式的左侧部分,并且JVM在右侧部分的基础上工作

关于java - 亚型多态性成分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com