如何使抽象类或接口处理不同的数据类型

时间:2017-03-16 21:08:03

标签: java rgb

我正在用Java编写一个程序,它有一个包含另一个对象(控件)并包含另一个对象(controlType)的类对象(设备)

我遇到的问题是每个“controlType”都不同。

一个可能是一个开/关开关,可以获取和设置一个布尔值,但另一个可能是一个颜色选择器,可以获取和设置3个字节的RGB数据。

我考虑使用抽象的“controlTypeAbstract”类,但我不知道如何使用不同的数据类型。

有更好的方法吗?

public abstract class controlTypeAstract {

    public abstract UnknownVariableType getData(){

    }

    public abstract void setData(UnknownVariableType data){

    }
}


public class onOffSwitch extends controlTypeAstract {
    Boolean isOn = false;

    public boolean getData(){
        return isOn;        
    }

    public void setData(Boolean data){
        isOn = data;
    }
}

public class colorControl extends controlTypeAstract {
    int redValue = 0;
    int greenValue = 0;
    int blueValue = 0;

    public int[] getData(){
        int data[];
        return (new int[] {redValue, greenValue, blueValue});       
    }

    public void setData(int[] data){
        redValue = data[0];
        greenValue = data[1];
        blueValue = data[2];
    }
}

1 个答案:

答案 0 :(得分:0)

为了给出更好的答案,至少看看你已经实施/尝试了什么是有用的。

根据我的理解,我确实会有一个控件类型抽象类,它处理与controlTypes之间一样多的常用功能。然后每个不同的controlType扩展抽象父类。如果要在父类中声明抽象方法,那么让它们只将对象作为参数,然后在每个单独的controlType中专门处理该对象,就像在该上下文中所期望的那样。

很抱歉,如果我完全错过了你的问题......