这是匿名内部类的变体吗?

| 这是一个例子
JPanel panel = new JPanel(){
    @Override
    protected void paintComponent(Graphics g){
        // do stuff
    }

    @Override
    public Dimension getPreferredSize(){
        // do stuff
    }
};
这仅仅是匿名内部类的变体,还是完全其他?     
已邀请:
        是的,这是一个匿名内部类     
        您可能对类的匿名性感到困惑,因为乍一看看起来您正在将面板定义为JPanel的实例。但是,这不是您在做什么。相反,您要定义JPanel的子类,这是一个新类,并创建面板作为该新子类的实例。这个新班级的名字是什么?好吧,它没有一个,因此这就是匿名的原因!     
        那是一个匿名的内部类。     

要回复问题请先登录注册