日期:2014-05-20  浏览次数:20609 次

继承和组合的关系

在Java中继承的作用和组合关系的作用能举例说明吗?



主要是后者,,,不清楚

------解决方案--------------------
比如“人”和“男人”,这两个就是继承关系,男人继承自人。
再比如“人”和“手”,这两个就是组合关系。手是人的一部分。
------解决方案--------------------
继承建模 is-a/like-a。
组合建模 has-a
------解决方案--------------------
通俗一点将继承就是使用extends,组合就是在一个类中把另一个类作为成员变量。。。
------解决方案--------------------
一个类使用另一个类就是组合,一个类是另一个类基础上的扩展就是继承。
------解决方案--------------------
要说二者的优缺点的话不大合适,因为两者不能相提并论
虽然继承常被人提起,但是我们应该尽量避免使用它,而是用组合替代之
用继承与否有一个界限:
就是当你必须要使用向上转型时才需要用继承
其中向上转型就是子类向父类的转型,例如:
package pk;

class Base {

}

public class Inhiretance extends Base {
public static void getInh(Base base) {
}
public static void main(String[] args) {
Inhiretance ih = new Inhiretance();
getInh(ih);
}
}

如果你觉得这种用法是不必要的,那你就应该考虑用组合了,因为那是一种更加简单,不容易出错的东西