当前位置: 首页 > 知识库问答 >
问题:

重写过程中的动态多态性

公冶龙野
2023-03-14

我在类A中创建了两个方法,并在类B中重写,如下所示。我有一些关于动态多态性和重写的问题。

public class A {


    public void methoda()
    {
        System.out.println("a");
    }
    public void methodb()
    {
        System.out.println("aaa");
    }
    public static void main(String[] args) {
    B a =new B();
    A b=a;
    b.methoda();


    }

}

public class B extends A{
@overrides
public void methoda()
{
    System.out.println("A");
}
@overrides
public void methodb()
{
    System.out.println("g");
}
}

重写和动态多态总是同时发生吗?

共有1个答案

陶元凯
2023-03-14

我不确定我是否理解这个问题,但多态方法总是在运行时得到解决。执行的方法是对象的具体运行时类型之一。引用它的变量的声明类型并不重要。

狮子就是狮子,如果你把它称为动物,它总是会咆哮。

 类似资料:
  • 如果方法是private,static或final,则通过重载实现静态多态。 那么重载公共和默认方法呢?

  • 本文向大家介绍浅谈Java中的重载,重写,多态,静态绑定、动态绑定,包括了浅谈Java中的重载,重写,多态,静态绑定、动态绑定的使用技巧和注意事项,需要的朋友参考一下 本文主要研究的是关于Java中重载,重写,多态,静态绑定、动态绑定的相关内容,具体如下。 重载,英文名是overload,是指在一个类中定义了一个以上具有相同名称的方法,这些方法的参数个数、参数类型和顺序不能相同。返回类型可以相同,

  • 最近在一次采访中,我被问到,“Java中的动态多态性示例是什么?” 我回答:“方法覆盖”。 然后,面试官问:“是否有任何压倒一切的概念不属于动态多态性?” 这真的是个好问题吗?如果是,答案是什么? 提前感谢。

  • 本文向大家介绍C#实现多态的过程中 overload 重载 与override 重写的区别相关面试题,主要包含被问及C#实现多态的过程中 overload 重载 与override 重写的区别时的应答技巧和注意事项,需要的朋友参考一下 答: override 重写与 overload 重载的区别。 重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 override 是进行基类

  • 让我们用这个简单的Java代码: 我试图找出这三个ate()方法的哪个版本将运行。现在,当我键入 结果是“普通动物一般地吃”,这是完全可以理解的。 当我输入时也会发生同样的事情: 结果是“吃干草的马”,这也是完全合乎逻辑的。 这就是我困惑的地方。当我输入: 我得到: 我期望编译器从动物类引用调用ate()方法,而不是马对象引用。 所以我的问题是,当我有一个泛型引用变量类型引用一个对象类型时(比如:

  • 问题内容: 让我们看一下这个简单的Java代码: 我试图找出三个eat()方法的哪个版本。现在,当我键入 输出是“一般动物食用”,这是完全可以理解的。 当我键入以下内容时,会发生相同的事情: 输出是“吃干草的马”,这完全是合乎逻辑的。 这就是让我感到困惑的地方。当我键入: 我得到: 我希望编译器从Animal类引用而不是Horse对象引用中调用eat()方法。 所以我的问题是,当我有一个引用对象类