-1

最近我参加了一个面试,有人问我一个问题

使用运算符创建对象new()是多态性吗?

例如:

Employee e = new Employee();

这是多态吗?(回答是和否并解释。)

我想不出答案。

正如我所读到的关于多态性的内容是编译类型和运行时。

谁能解释一下?谢谢。

4

2 回答 2

10

如果将基类引用分配给子类对象,则它是一种多态形式。

多态性,在词源上意味着“多种形式”,是一种将基类的任何子类的对象视为基类的对象的能力。因此,基类有多种形式:基类本身及其任何子类。

这不是多态性的例子

Employee e = new Employee();

但是假设 Empolyee 是一个类,它是从另一个名为 Person 的类扩展而来的,那么这将通过在运行时调用 Employee 的方法来启用多态性:

Person p = new Employee();

阅读本文以了解更多信息:

http://www.artima.com/objectsandjava/webuscript/PolymorphismInterfaces1.html

于 2013-09-09T10:51:48.507 回答
2

根据java多态性

多态性的字典定义是指生物学中的一个原理,其中一个有机体或物种可以有许多不同的形式或阶段。这个原则也可以应用于面向对象的编程和像 Java 语言这样的语言。一个类的子类可以定义它们自己独特的行为,并且共享一些与父类相同的功能。

Employee e = new Employee(); 

不是多态的例子。

Object emp = new Employee();  

是多态性的一个例子。因为这里子类(Employee)定义了自己独特的行为,但共享一些与父(Object)类相同的功能。

于 2013-09-09T10:53:41.750 回答