- 博客(5)
- 收藏
- 关注
原创 软件构造 | 可复用性
对类的复用:白盒框架(继承)和黑盒框架(接口)复用的关键是子类能否安全地替换父类:依据LSP替换原则,子类可以增加方法,不能修改父类方法,可以增加不变性。对于重写的方法,子类的返回值是父类返回值及其子类型。协变和逆变,返回值协变,参数逆变参数不能协变:如果一个对象表示类型是父类,实际类型是子类,那么向对象添加对象就会有问题,比如添加的对象是父类的子类,但不是子类的子类泛型是不支持协变的,ArrayList<String>不是ArrayList<Object>的
2022-05-30 15:31:02 86
原创 软件构造 | 以一个例子实现一个ADT
以停车场管理系统为实例对于ParkingFeild接口:接口中定义通用的方法针对lot类这种不可变数据类型,不可以用地址是否相同判断equals所以需要重写equals方法和hashCode方法回顾 可变数据类型和不可变数据类型:根据数据变化前后,指向的内存地址是否一致,可将数据分为:可变数据类型与不可变数据类型。不可变数据类型被改变之后,会重新分配空间。不可变数据类型需要重写equals和hashcode检查public void checkRep() {
2022-05-24 19:12:43 217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人