类和类之间的关系有哪几种?分别是什么?每种关系在代码中是如何体现的?
时间: 2024-05-07 09:22:41 浏览: 10
类和类之间的关系有以下几种:
1. 继承关系(Inheritance):表示一个类是另一个类的子类,继承了父类的属性和方法。在代码中,使用关键字 `extends` 来表示继承关系。
例如:
```
class Animal {
void eat() {}
}
class Dog extends Animal {
void bark() {}
}
```
2. 实现关系(Implementation):表示一个类实现了某个接口,需要实现接口中的所有方法。在代码中,使用关键字 `implements` 来表示实现关系。
例如:
```
interface Flyable {
void fly();
}
class Bird implements Flyable {
void fly() {}
}
```
3. 关联关系(Association):表示一个类与另一个类有某种关联,可以是双向的或单向的。在代码中,可以使用实例变量或方法参数来表示关联关系。
例如:
```
class Person {
private Car car;
public void drive(Car car) {
this.car = car;
// ...
}
}
class Car {}
```
4. 聚合关系(Aggregation):表示一个类包含另一个类,但是两者之间不是强依赖的关系。在代码中,可以使用实例变量来表示聚合关系。
例如:
```
class Room {
private List<Person> persons;
public void addPerson(Person person) {
persons.add(person);
}
}
class Person {}
```
5. 组合关系(Composition):表示一个类包含另一个类,两者之间是强依赖的关系。在代码中,可以使用实例变量来表示组合关系。
例如:
```
class Computer {
private CPU cpu;
private Memory memory;
public Computer() {
cpu = new CPU();
memory = new Memory();
}
}
class CPU {}
class Memory {}
```