类与类之间的关系

1.类与类之间的关系
横向关系
① 依赖关系:某个对象在执行指定方法时需要其他类的对象参与完成
②关联关系:它体现的是两个类,或者是类与接口之间的语义级别一种强依赖关系
③ 聚合关系:是一种特殊的关联关系, 代表 整体 与 部分,拥有的关系
④ 组合关系:组合,称为强聚合
纵向关系
①继承关系
②实现关系
2.重写和重载的区别
重写(override) 在某些情况下,父类中的方法不能够满足子类的需求时,此时子类 可以对父类的方法进行覆盖,这个操作称为重写。
要求: 1. 重写是发生在有继承关系的类中
2. 三同1不严格 (返回值类型一样,也可以是子类)
重载(overload) 方法的重载:是多态的一种实现策略,方法的重载表现为 存在方法名相同,参数列表不同的方法。(和返回值类型,访问控制修饰符无关) 参数列表: 参数个数不同 或者 参数对应位置数据类型不同
3.== 和 equals的区别
① ==
情况1:基本数据类型,比较值
情况2:引用数据类型,比较地址 (更准确的讲,判断两个引用是否指向同一个对象)
② equals
情况1: 若没有重写Object类的equals方法,其实本质还是比较地址 Object源码中equals方法的定义:
public boolean equals(Object obj) { return (this == obj); }
情况2: 子类重写了Object类的equals方法,一定也要重写hashCode()方法 则按照重写后的规则比较
重写equals时总是要重写hashCode方法
3.is a 和 has a 的区别
is-a 是继承关系,在继承关系中 一个子类继承一个父类 Dog类 和 Animal类 狗是动物(is-a关系)
has-a 是组合包含的关系(关联关系) Person类 和 Head类 不能说 头是人,是错误 而是 一个人由头组成(has-a关系)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值