我刚刚开始接触java。只是为了确保我能正确解释这一点并理解术语。看起来子类型多态性将由两个组件组成:多态对象和多态方法。
我的问题
那么Animal a = new Dog();“a”会是多态对象,而重写的方法会是多态方法吗?
多态性是编程语言的一项功能,允许例程使用不同类型的变量。如果某段代码可以同时使用某些不同的类型,那么它就是多态的。多态代码越多越好。
\n\n多态性有两种类型 -通用多态性和临时多态性:
\n\ntoString()方法可以与任何引用类型一起使用);f(int)可以与int, byte,short和 一起char使用)。临时多态性分为三种类型:
\n\ndouble也可以接受 7 个基元中的任何一个);+符号可以重载);并且有两种通用多态类型 \xe2\x80\x93 参数多态和子类型多态:
\n\nT或E可以用任何类型替换的字符)。所有静态方法都是非虚拟方法,所有非静态方法都是虚拟方法。
\n\n虚拟方法\xe2\x80\x93 是类的方法,可以在子类中重写,方法调用的具体方法实现将在运行时定义定义。然后,开发人员无需知道对象的确切类型即可使用虚拟方法来使用该对象:只要知道该对象是声明此方法的类或类的子类的实例就足够了。
\n\n虚方法是多态性实现的一个非常重要的方式。它们允许创建通用代码可应用于基类及其任何子类的对象的同时基类定义了与对象协调的方式,它的任何后代都可以有这种方式的具体实现。
\n\n多态性也可以通过使用继承来实现,因为如果我们有父类和子类,并且我们有父类的代码,那么我们也可以将它与子类一起使用(例如accept可以接受任何其他类型的方法java.lang.Object)。
可以使用虚函数操作的对象称为多态对象。
\n\n并且方法重写不被视为多态性。签名多态方法是一种可以使用多种调用签名和返回类型中的任何一种进行操作的方法。
\n\n这是多态性的一个很好的例子:
\n\nAnimal a = new Dog();\nRun Code Online (Sandbox Code Playgroud)\n\n在您的示例中,是type 对象a的引用 type 。AnimalDog
编译器检查表达式的左侧部分,JVM 在右侧部分的基础上工作。
\n