类与类之间的关系有继承,实现,依赖,关联,聚合,组合。
继承
继承关系就是简单的泛化关系,父子关系,是一种is a的关系,比如牛和羊都是动物。
public class Animal{
}
public class Cattle extends Animal{
}
public class Sheep extends Animal{
}
实现
实现关系是一种like a的关系,是类与接口之间的关系,实现了规范与实现分离。比如羊和老虎都是动物,都会吃东西,羊吃草,老虎吃肉。
public interface IAnimal{
void eat();
}
public class Sheep implements IAnimal{
public void eat(){
System.out.println("羊吃草");
}
}
public class Tiger implements IAnimal{
public void eat(){
System.out.println("老虎吃肉");
}
}
依赖
依赖关系是一种use a的关系,就是我这个类需要有你才能完成工作,比如汽车需要轮胎(轮胎做汽车的属性)。依赖关系也可以体现成被依赖的类作为需要依赖类的方法参数。
public class Tyre{
}
public class Car{
Tyre tyre;
}
关联
关联关系是对两个相互独立的对象,如果一个实例对象对另一个对象的一些特定实例有某些特定关系时,这就是关联关系。比如每个订单对应某个客户,某个客户对应某些订单。
public class Order{
Customer customer;
}
public class Customer{
Order order;
}
关联关系本质上也是一种依赖关系。
聚合
聚合关系是整体和部分的关系,是组件对象和聚合对象之间的关系(has a)。比如班级和学生。
public class MyClass{
Student student;
}
组合
组合也是整体和部分的关系,是一种包含关系(contains a)。比如汽车由车身和轮胎组成。
public class Car{
Body body;
Tyre tyre;
}
组合和聚合本质上都是关联关系,都是表示的整体与部分的关系。
强弱关系:组合>聚合>关联>依赖。