我正在做一些考试复习工作,并创建了一个 Employee 抽象类和另外两个从 Employee 类扩展出来的类(AcademicEmployee 和 ProfessionalEmployee)。
我在 Employee 类中设置了一个 public static void main 来运行这些行:
ProfessionalEmployee boss = new ProfessionalEmployee("The Big Man", 5000.0, null, 10);
AcademicEmployee e1 = new AcademicEmployee("Ryan", 1000.0, boss, 'A');
我知道你不能实例化一个抽象类,实际创建的对象是“new”关键字后面的任何东西,但为什么我可以这样做:
Employee boss = new ProfessionalEmployee("The Big Man", 5000.0, null, 10);
我认为它以“数据类型”然后“引用名称”= new ...的方式工作
但我对为什么允许将数据类型设置为 Employee 感到困惑。抱歉,如果这是一个奇怪的问题,我只是 Java 的新手:)
最佳答案
这是Polymorphism的一个概念在 java 。由于您的类 ProfessionalEmployee
和 AcademicEmployee
都扩展了 Employee
,因此两者都可以分配给 Employee
引用对象。
多态性允许您定义一个接口(interface)或类并具有多个实现。
关于java - 使用抽象类的类名在 Java 中创建一个新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58655293/