如何扩展java.awt.Color类?

如何扩展java.awt.Color类?,java,oop,inheritance,Java,Oop,Inheritance,我正在用Java编写一个图形库。它将是几个现有Java图形包的前端,结合了Java.awt和javax.swing的特性。我是一名教师,我正在为我的初学学生创建这个库,这样他们就不必到处乱搞各种各样的导入语句。我还想提供一些额外的内置颜色,以增强java.awt.Color附带的有限集 我希望创建一个仅扩展java.awt.Color的Color类。这样,学生就不必直接导入java.awt.Color。我试过这个: package graphics; public class Color ex

我正在用Java编写一个图形库。它将是几个现有Java图形包的前端,结合了Java.awt和javax.swing的特性。我是一名教师,我正在为我的初学学生创建这个库,这样他们就不必到处乱搞各种各样的导入语句。我还想提供一些额外的内置颜色,以增强java.awt.Color附带的有限集

我希望创建一个仅扩展java.awt.Color的Color类。这样,学生就不必直接导入java.awt.Color。我试过这个:

package graphics;

public class Color extends java.awt.Color
{
}
但是编译会引发找不到符号构造函数颜色的错误。显然java.awt.Color类缺少默认构造函数,这导致我的类编译失败


我是否需要咬紧牙关,编写自己的颜色类,并包含一些在java.awt.Colors和我的颜色之间转换的方法?

是的,java.awt.Color没有默认构造函数,因此您必须创建至少一个构造函数才能调用超级构造函数:

public class Color extends java.awt.Color{
  public Color(int rgb) {
    super(rgb);
  }
}

是的,java.awt.Color没有默认构造函数,因此您必须创建至少一个构造函数并调用超级构造函数:

public class Color extends java.awt.Color{
  public Color(int rgb) {
    super(rgb);
  }
}

我会用这个例子来回答:

public class Color extends java.awt.Color {
  public final static Color AZURE = new Color(240,255,255);
  public static Color colorOf(String color) {
    try {
      return (Color)Color.class.getDeclaredField(color).get(null);
    } catch(Exception notAvailable) {
      System.out.println("RGB color " + color + " is not a predefined " +
                         "static color.");
      return null;     
     } 
   } 
 } 

我会用这个例子来回答:

public class Color extends java.awt.Color {
  public final static Color AZURE = new Color(240,255,255);
  public static Color colorOf(String color) {
    try {
      return (Color)Color.class.getDeclaredField(color).get(null);
    } catch(Exception notAvailable) {
      System.out.println("RGB color " + color + " is not a predefined " +
                         "static color.");
      return null;     
     } 
   } 
 }