我有一个名为“Design”的类,我正在编写以下代码来扩展该类以包含一个名为sayHello()的新函数。然而它似乎没有工作。我是否只允许以这种方式完成现有的功能?
Design design1 = new Design() {
public void sayHello() {
System.out.println("hello");
}
};
design1.sayHello(); // this gives an error "function not found"
答案 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());
}
}