Java 子类型多态性组件

Java 子类型多态性组件,java,polymorphism,Java,Polymorphism,我刚刚开始学习java。只是为了确保我能正确地解释这一点并理解术语。看起来子类型多态性将由两个组件组成,多态对象和多态方法 我的问题 所以动物a=新狗()多态对象是否为“a”,多态方法是否为方法重写?多态性是编程语言的一项功能,允许例程使用不同类型的变量。如果某段代码可以同时使用一些不同的类型,那么它就是多态的。多态代码越多越好 多态性有两种类型-通用型和特殊型: 在通用多态性下,一个类型可以使用无限多个其他类型(例如,toString()方法适用于任何引用类型) 在特殊多态性下,它使用的类型数

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

我的问题
所以
动物a=新狗()
多态对象是否为“a”,多态方法是否为方法重写?

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

多态性有两种类型-通用型和特殊型:

  • 在通用多态性下,一个类型可以使用无限多个其他类型(例如,
    toString()
    方法适用于任何引用类型)
  • 在特殊多态性下,它使用的类型数量是预先知道的(例如,
    f(int)
    可以与
    int
    byte
    short
    char
    一起使用)
  • 有三种类型的特殊多态性:

    Animal a = new Dog();
    
  • 加宽原语转换(例如,接受
    double
    的方法也可以接受7个原语中的任意一个)
  • 运算符重载(在Java中,用户没有运算符重载,在其他语言中则是这样,例如,
    +
    符号可以重载)
  • 重载是一种功能,如果一个类的参数列表不同,则该功能允许该类具有多个同名方法
  • 有两种通用的多态性类型–参数多态性和子类型多态性:

    Animal a = new Dog();
    
  • 参数多态性(又称泛型)是一个类型不确定的类(
    T
    E
    字符,可以用任何类型替换)
  • 子类型多态性–是因为继承(当我们从某个类继承时,在方法签名中可以编写超类并将任何子类放在那里)。如果没有虚拟方法,此子类型机制将无法工作
  • 所有静态方法都是非虚拟的,所有非静态方法都是虚拟的

    虚拟方法–是一个类的方法,可以在子类中重写,方法调用的具体方法实现将在运行时定义。然后,开发人员就不必知道使用虚拟方法时对象的确切类型:只要知道对象是类的实例或类的子类就足够了,其中声明了该方法

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

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


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

    方法重写不被视为多态性。Signature多态方法是一种可以处理各种调用签名和返回类型的方法

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

    Animal a = new Dog();
    
    在您的示例中,
    a
    是类型
    Animal
    对类型
    Dog
    对象的引用


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

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

    多态性有两种类型-通用型和特殊型:

  • 在通用多态性下,一个类型可以使用无限多个其他类型(例如,
    toString()
    方法适用于任何引用类型)
  • 在特殊多态性下,它使用的类型数量是预先知道的(例如,
    f(int)
    可以与
    int
    byte
    short
    char
    一起使用)
  • 有三种类型的特殊多态性:

    Animal a = new Dog();
    
  • 加宽原语转换(例如,接受
    double
    的方法也可以接受7个原语中的任意一个)
  • 运算符重载(在Java中,用户没有运算符重载,在其他语言中则是这样,例如,
    +
    符号可以重载)
  • 重载是一种功能,如果一个类的参数列表不同,则该功能允许该类具有多个同名方法
  • 有两种通用的多态性类型–参数多态性和子类型多态性:

    Animal a = new Dog();
    
  • 参数多态性(又称泛型)是一个类型不确定的类(
    T
    E
    字符,可以用任何类型替换)
  • 子类型多态性–是因为继承(当我们从某个类继承时,在方法签名中可以编写超类并将任何子类放在那里)。如果没有虚拟方法,此子类型机制将无法工作
  • 所有的静态方法