java编程题,自己觉得又点难(求高手写代码)

来源:百度知道 编辑:UC知道 时间:2024/05/31 04:43:12
编写一个Java程序,它具有名为Color的类,Color类具有私有属性colorName和以下方法:
final void setColor(String color);
String getColor();//返回的字符串提供颜色

类White从Color类继承而来,且将其私有属性colorName设置为”white”。

类Violet,Indigo,Blue,Green,Yellow,Orange和Red从White类继承而来。所有这些类都具有名为colorName的私有变量,它们分别初始化为 “violet”,”indigo”,”blue”,”green”,”yellow”,”orange”和”red”
类Prism具有以下方法:
void activatePrism(Color c);
此方法检查getColor()方法是否返回”white”,如果是则它创建Violet,Indigo,Blue,Green,Yellow,Orange和Red类的实例,并将它们的colorName属性打印到标准输出,如果上述检查结果为false,则该方法只是返回。

//Color类
public class Color {
private String colorName;

final public void setColor(String color){
this.colorName = color;
}

public String getColor(){
return this.colorName;
}
}

//White类
public class White extends Color{

public White(){
this.setColor("white");
}

public String getColor() {
return super.getColor();
}
}

//Red类
public class Red extends White{
public Red(){
this.setColor("Red");
}
}

//Prism类
public class Prism {
static public void activePrism(Color c){
if(c.getColor().equals("white")){
Red r = new Red();
Blue b = new Blue();
System.out.println(r.getColor());
System.out.println(b.getColor());
}
else{
return;
}
}
}

//测试类
public class ColorTest {
p