美文网首页
【java】父类和子类不应该出现在同一块存储区域

【java】父类和子类不应该出现在同一块存储区域

作者: AmaAnchor | 来源:发表于2022-04-10 11:43 被阅读0次

“父类和子类不应该出现在同一块存储区域”这个理念对于程序的设计是很重要的,在java中也有相关的语法限制。

比如 Manager extends Employee

//数组
Manger[] managers=new Manager[100];
Employee[] employees=managers;//正常编译

在这里如果试图将一个employee实例对象存储到employees,则会抛出异常(ArrayStoreException),原因是java会记住一开始的数组的类型,这是数组的保护。

同样的情况还出现在java的泛型中,

//集合
ArrayList<Manager> managers =new ArrayList<>();
ArrayList<Employee> employees=managers;//报错

这里再赋值给employees的时候就会报错,原因是集合并没有像数组那样的保护机制。

相关文章

网友评论

      本文标题:【java】父类和子类不应该出现在同一块存储区域

      本文链接:https://www.haomeiwen.com/subject/wvrvsrtx.html