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