新的函数声明内联在java子类中

时间:2014-12-05 05:26:42

标签: java

我有一个名为“Design”的类,我正在编写以下代码来扩展该类以包含一个名为sayHello()的新函数。然而它似乎没有工作。我是否只允许以这种方式完成现有的功能?

Design design1 = new Design() {
    public void sayHello() {
        System.out.println("hello");
    }
};

design1.sayHello();  // this gives an error "function not found"

2 个答案:

答案 0 :(得分:0)

这是合乎逻辑的。 您将覆盖超类并将其分配给超类的实例变量。

由于实例变量属于超类类型,因此只能访问超类中可用的那些方法。

答案 1 :(得分:0)

如果你的"设计"你可以这样做class是一个接口。你可以创建一个匿名的内部类。

示例:

public interface Design{
     public void sayHello();
}

public class Test
{
     public static void main(String args[])
     {
             Design d = new Design(){
                 @Override
                 public void sayHello(){
                       return "Hello World!";
                 }
             };
           System.out.println(d.sayHello());      
     }
}