使用new()运算符创建一个Object是多态吗?

时间:2013-09-09 10:49:29

标签: java polymorphism

最近我参加了一次采访,并向我询问了一个问题

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

例如:

Employee e = new Employee();

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

我无法想到答案。

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

任何人都可以解释一下吗? 感谢。

2 个答案:

答案 0 :(得分:10)

如果为子类对象分配基类引用,那么它就是多态的一种形式。

  

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

这不是多态的一个例子

Employee e = new Employee();

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

Person p = new Employee();

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

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

答案 1 :(得分:2)

根据java polymorphism

  

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

Employee e = new Employee(); 

不是多态的例子 但

Object emp = new Employee();  

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