最近我参加了一个面试,有人问我一个问题
使用运算符创建对象new()
是多态性吗?
例如:
Employee e = new Employee();
这是多态吗?(回答是和否并解释。)
我想不出答案。
正如我所读到的关于多态性的内容是编译类型和运行时。
谁能解释一下?谢谢。
最近我参加了一个面试,有人问我一个问题
使用运算符创建对象new()
是多态性吗?
例如:
Employee e = new Employee();
这是多态吗?(回答是和否并解释。)
我想不出答案。
正如我所读到的关于多态性的内容是编译类型和运行时。
谁能解释一下?谢谢。
如果将基类引用分配给子类对象,则它是一种多态形式。
多态性,在词源上意味着“多种形式”,是一种将基类的任何子类的对象视为基类的对象的能力。因此,基类有多种形式:基类本身及其任何子类。
这不是多态性的例子
Employee e = new Employee();
但是假设 Empolyee 是一个类,它是从另一个名为 Person 的类扩展而来的,那么这将通过在运行时调用 Employee 的方法来启用多态性:
Person p = new Employee();
阅读本文以了解更多信息:
http://www.artima.com/objectsandjava/webuscript/PolymorphismInterfaces1.html
根据java多态性
多态性的字典定义是指生物学中的一个原理,其中一个有机体或物种可以有许多不同的形式或阶段。这个原则也可以应用于面向对象的编程和像 Java 语言这样的语言。一个类的子类可以定义它们自己独特的行为,并且共享一些与父类相同的功能。
Employee e = new Employee();
不是多态的例子。
但
Object emp = new Employee();
是多态性的一个例子。因为这里子类(Employee
)定义了自己独特的行为,但共享一些与父(Object
)类相同的功能。