表示空间:由用来表示抽象值的实体构成,ADT开发者关注表示空间,记为R
抽象空间:对外的数据,客户端关注抽象空间,记为A
例如,我们可以用一个字符串来表示一个字符集,则抽象空间由字符集构成,而表示空间则由字符串构成。
若R中某元素x可以表示A中某实体y,则x映射到y,这样定义的关系一定是满射(不一定是单射,也不一定对于每个x都有其像,即可能存在无意义的表示,即R中不是每个元素都是合法的),而这种关系其实就是抽象函数AF。
表示不变性RI讲R中元素映射到true或false,其实就是检验某个具体的表示是否合法。
抽象空间无法单独决定AF和RI,需和内部表示共同决定。
选中的即为答案。
在creators, producers和mutators内部都要checkrep;有益的可变性指其映射到的抽象值不变,但内部表示发生了变化。
Animal animalRefToHorse = new Horse();
animalRefToHorse的对象类型是Horse,引用类型是Animal;前者决定调用哪个重载方法,后者决定调用哪个重写方法。