1. “is-a”(是一个)的关系是用继承来表述
2. “has-a”(有一个)的关系是用组合来表述
3. 组合语法:
组合技术通常用于想在新类中使用现有累的功能而非它的接口的情况下。即在新类中放入某个类的对象,让其实现所需要的功能,但是新类的用户看到的只是为新类所定义的接口,而非嵌入类对象的接口。其实组合在编码中是经常用到的。
class Engine {
public void start() {}
public void rev() {}
public void stop() {}
}
class Wheel {
public void rollup()
}
public class Car {
Engine engine = null ;
Wheel wheel = null;
public Car() {
engine = new Engine(); //轮胎和引擎是汽车的一部分
wheel = new Wheel();
}
}
4. 组合和继承都允许在新类中放置子对象,组合是显示的这么做,而继承是隐式的做。
2. “has-a”(有一个)的关系是用组合来表述
3. 组合语法:
组合技术通常用于想在新类中使用现有累的功能而非它的接口的情况下。即在新类中放入某个类的对象,让其实现所需要的功能,但是新类的用户看到的只是为新类所定义的接口,而非嵌入类对象的接口。其实组合在编码中是经常用到的。
class Engine {
public void start() {}
public void rev() {}
public void stop() {}
}
class Wheel {
public void rollup()
}
public class Car {
Engine engine = null ;
Wheel wheel = null;
public Car() {
engine = new Engine(); //轮胎和引擎是汽车的一部分
wheel = new Wheel();
}
}
4. 组合和继承都允许在新类中放置子对象,组合是显示的这么做,而继承是隐式的做。