类与类之间的关系
1.Generalization 泛化(extends 继承)
①语义:一个类(称为子类、子接口)继承另外一个类(称为父类、父接口)的功能,并可以增加它自己的新功能。
②Java语法:
class Person {
}
class Student extends Person {
}
③UML图:
2.Realization 实现
①语义:一个类可以实现多个接口,实现所有接口的功能;体现了规范和实现分离的原则。
②Java语法:
interface A{
public void a();
}
class B implement A{
public void a(){
System.out.println(“实现接口A”);
}
}
③UML图:
3.Dependency 依赖
①语义:一个类A使用到了另一个类B,但是这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。
②Java语法:
class Car{
public void run(Petrol petrol){}
}
class Petrol{}
public class dep{
public static void main(){
Car car = new Car();
car.run(new Petrol);
}
}
③UML图:
4.Association 关联
①语义:关联是两个独立的类之间,通过它们的对象建立的关系。
②Java语法:
class Bank{
private String name;
Bank(String name){
this.name = name;
}
public String getBankName(){
return this.name;
}
}
class Employee{
private String name;
Employee(String name){
this.name = name;
}
public String getEmployeeName(){
return this.name;
}
}
class Association{
public static void main(String[] args){
Bank bank = new Bank(“CBB”);
Employee emp = new Employee(“李华”);
System.out.println(emp.getEmployeeName()+”is employee of”+bank.getBankName());
}
}
③UML图
5.Aggregation 聚合
①语义:是整体与部分的关系,且部分可以离开整体而单独存在。
②Java语法:
class Car{
public static void run(){
System.out.println(“汽车在奔跑”);
}
}
class Driver{
Car mycar;
public void drive(){
mycar.run();
}
}
③UML图:
6.Composition 组合
①语义:是整体与部分的关系,但部分不能离开整体而单独存在。
②Java语法:
class Department{
}
class Company(Department dep){
mydep = dep;
}
③UML图: