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

“父类和子类不应该出现在同一块存储区域”这个理念对于程序的设计是很重要的,在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的时候就会报错,原因是集合并没有像数组那样的保护机制。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容