继承会对父类的所有东西都继承下来。而接口比较灵活,能根据我们的选择,连接那些我们需要的类、方法。

举例:
面对一些变形金刚,有的只能用轮胎行驶,有的只能飞,有的能潜水,有的能钻洞,有的能行驶也能飞等如何能较好的

根据对象去实现这些功能呢?

对于继承:

1.如果对所有的动作都集中在一个类中。如行驶为一个方法、飞为一个方法、潜水为一个方法……。这样它的子类就拥有
所有的方法,而针对某些子类x只能飞,那么其他的方法对它都是冗余的,增加了没用代码量。而且对那些类x的限制形容
不够具体。
2.既然如此,也许会想到让一个类只有一个方法,那么需要方法A就继承那个含有A的类。可是只有C++才能实现多继承。
Java只能实现单继承,所以如果需要好几个方法就不行了?

继承的用处:
对一个集合,能挑出它们的共同属性,且属性一般都是中性的,即没有正反面之分的。比如金刚都有眼睛,嘴巴,鼻子
等(一般情况下)。那能不能对金刚都含有武器列入超类中呢。我认为还是不行,因为武器分好多类。

对于接口:
1.我们可以对同类型的方法对上一个接口,把武器列入接口,而武器的特性跟接口无关,比如激光、子弹都只是在继承接口的
类中决定。接口只负责让实现该接口的类与接口的继承类连接起来(关联)。
2.接口让实现该接口的类不含冗余信息,能根据需要去连接接口中需要的某个方法。接口只承担连接关系,是两者的桥梁。
具体连接的是什么方法,是在实例化的类中具体决定、实现。接口还承担传递命令的职责,即类中调用接口的方法是,接口将
命令直接传到接口的某个具体方法,让那个方法自己执行。
3.接口允许多继承,一个类可以继承多个接口。所以更体现接口的灵活性,例如:激光枪上还有散弹的枪,就让激光枪继承
含有散弹枪的借口。

其他类与类的关系:
一个类包含其他类就叫关联。
关联分为:组合和聚合。
实例化一个类的同时,这个类也实例化了其他类。就该类与该类中的类,且同时存在,同时消亡,就是组合。
而如果一个类对于另一个类可有可无,就是聚合了。

依赖:
一个类中的方法的参数或是方法体内含有其他类,就是依赖。