混型的基本概念是混合多个类的能力,以产生一个可以表示混型中所有类型的类。
我们来看个简单的需求:现在需要把获取当前时间戳、获取计数器和存取某个值的三个类合成一个混型。
1. 通过接口实现
首先,我们可以直接通过接口的形式来满足需求。
public interface TimeStamped {
long getStamp();
}
public class TimeStampedImp implements TimeStamped {
@Override
public long getStamp() {
return new Date().getTime();
}
}
public interface SerialNumbered {
long getSerialNumber();
}
public class SerialNumberedImp implements SerialNumbered {
private static Long counter = 1L;
private final long serialNumber = counter++;
@Override
public long getSerialNumber() {
return serialNumber;
}
}
public interface Basic {
void set(String val);
String get();
}
public class BasicImp implements Basic {
private String val;
@Override
public void set(String val) {
this.val = val;
}
@Override
public String get() {
return val;
}
}
public