java中的匿名类除了超类之外还能有其他方法吗?

lqfhib0f  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(492)

这个问题在这里已经有答案了

无法调用匿名类方法(4个答案)
13天前关门了。
我知道匿名类很适合重写等等,但是我想知道您是否也可以像下面的示例那样添加父类中不存在的其他方法。
这是我用wiebenik作为唯一方法的课。

public class Driehoek {

//methoden
public void wieBenIk(){
    System.out.println("ik ben een driehoek");
}

}
这是我的匿名类,我在其中添加了newmethod。
公共类主{

public static void main(String[] args) {

    Driehoek test = new Driehoek(){

        @Override
        public void wieBenIk() {
            System.out.println("overrided by anonymous class");
        }

        public void newMethod(){
            System.out.println("I am a new method");
        }
    };

    test.newMethod();

}

}
我的问题是test.newmethod()为什么不起作用?这不是像另一个儿童班吗?谢谢大家帮助我。

twh00eeo

twh00eeo1#

test被声明为driehoek的一个示例。因此,对于编译器,它将拥有driehoek的成员。
同样,如果你定义

Object test = new Driehoek() {....};

对于编译器测试,只有对象成员可用。
如果向匿名类添加更多成员,编译器将不知道test是否有这些方法可用。所以它不允许你使用它们

相关问题