黑马程序员技术交流社区
标题:
求一个功能的实现
[打印本页]
作者:
付维翔
时间:
2012-10-25 17:43
标题:
求一个功能的实现
在以下Adjustable接口和Base类都定义了adjust()方法,这两个方法的参数签名相同,但有着不同的功能。
public interface Adjustable {
// 调节温度
public void adjust(int temperature);
}
public class Base {
private int speed;
// 调节速度
public void adjust(int speed) {
this.speed = speed;
}
}
复制代码
如果有一个Sub类同时具有调节温度和调节速度的功能,那么Sub类需要继承Base类,并且实现Adjustable接口,但是以下代码不能满足
public class Sub extends Base implements Adjustable {
public int temperature;
public void adjust(int temperature) {
this.temperature = temperature;
}
}
复制代码
以上Sub类实现了Adjustable接口,并且把Base()类中的方法覆盖了,这意思味着失去调节速度的功能。求如何解决
作者:
官仁杰
时间:
2012-10-25 18:24
我觉得可以用组合规避这个问题
class Sub implements Adjustable {
public int temperature;
private Base b = new Base();
public void adjust(int temperature) {
this.temperature = temperature;
}
}
复制代码
或者内部类
class Sub2 extends Base{
class AdjustModule implements Adjustable{
public void adjust(int temperature) {}
}
}
复制代码
作者:
付维翔
时间:
2012-10-25 18:55
官仁杰 发表于 2012-10-25 18:24
我觉得可以用组合规避这个问题或者内部类
谢谢,问题解决
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2