继承与HAS-A的关系

Ben*_*nas 2 java theory oop

我可以说类House HAS-A类动物,即使它没有明确声明,只能通过继承看到吗?

public class Animal {}

public class Dog extends Animal {}

public class House {
    private Dog inhabitant = new Dog();
}
Run Code Online (Sandbox Code Playgroud)

The*_*ind 5

  1. 你的班级"房子"有一只狗.
  2. 每只狗都是动物.

所以,是的,你的房子有动物.


Max*_*tin 5

是一种继承表达关系,并且具有聚合表达关系.继承和聚合都允许您将子对象放在新类中.

简单的例子:

在此输入图像描述

聚合:当House有狗/动物时使用,狗/动物可以在没有House的情况下使用.