相关疑难解决方法(0)

多态性,重载和覆盖类似的概念?

我对多态,重载和覆盖的概念非常困惑,因为它对我来说似乎是一样的.请解释这些概念,它们如何彼此不同

很困惑所以请指导我.

谢谢

oop polymorphism overriding overloading

31
推荐指数
2
解决办法
7万
查看次数

Java中动态和静态类型赋值之间的区别

给定以下类层次结构,以下语句的动态和静态类型是什么?

类层次结构:

class Alpha {}

class Beta extends Alpha {}

class Gamma extends Alpha {}

class Epsilon extends Alpha{}

class Fruit extends Gamma{}

class Golf extends Beta {}

class Orange extends Fruit{}
Run Code Online (Sandbox Code Playgroud)

对于以下每个语句,静态类型?动态类型?:

Fruit f = new Fruit();
Alpha a = f;
Beta b = f;
a = b;
Gamma g = f;
Run Code Online (Sandbox Code Playgroud)


理解的答案/问题Fruit f = new Fruit()将是静态和动态类型的水果.
Alpha a = f;在编译时将是Alpha类型(静态)并在运行时键入Fruit(动态).
Gamma g = f;在编译时将是Gamma类型(静态)并在运行时键入Fruit(动态).
但是我不知道另外两个答案.Beta b = f是一个实例,其中同一个超类的两个子类彼此分配,所以我不确定它在编译时是类型Beta还是类型Alpha(静态).并且a = b是声明后的赋值,所以我不确定答案是什么.有人请帮帮我谢谢!

java inheritance static dynamic

10
推荐指数
2
解决办法
2万
查看次数