匿名内部类继承类的同时可以实现接口吗?

匿名内部类继承类的同时可以实现接口吗?

问题描述:

一个匿名内部类一定是继承一个类或者实现一个接口,new了这个父类或接口名的内部类还带内容,我就想问能不能还能不能继承其他类或实现其他接口。
如果我表达不好,不好理解, 那问题简化就是
匿名内部类能不能实现多个接口??

虽然没太明白你要干嘛,但应该是这样的吧

public class Test {

public static void main(String[] args){
    fun(new A(){
        @Override
        void a(){
            System.out.println("a");
        }

        @Override
        public void b() {
            System.out.println("b");
        }
    });
}

public static void fun(A a){
    a.a();
    a.b();
};

}

/**

  • 匿名抽象类 */ abstract class A implements B{ abstract void a(); }

/**

  • 实现的接口 */ interface B { void b(); } ```

public class Test {

public static void main(String[] args){
    fun(new A(){
        @Override
        void a(){
            System.out.println("a");
        }

        @Override
        public void b() {
            System.out.println("b");
        }
    });
}

public static void fun(A a){
    a.a();
    a.b();
};

}

/**

  • 匿名抽象类 */ abstract class A implements B{ abstract void a(); }

/**

  • 实现的接口 */ interface B { void b(); }

图片说明你说的是这样吧 可以的

初学还是把 集合 IO流 线程 这几个关键的做项目常用的东西掌握

纠正一下,内部类和匿名内部类是不同的两个概念,内部类可以继承其它类的同时实现接口,但是匿名内部类不可以,既不能继承也不能实现

首先,分清一下情况。内部类共有四种类别,其中局部内部类,静态内部类以及普通内部类都可以实现继承一个类的同时实现一个接口
但匿名内部类比较独特,单纯从语法解析上而言就已经不具备两者同时存在的可能。

演示如下:
创建一个TestInterface接口:

图片说明

创建一个TestParentClass类作为父类型:

图片说明

创建一个TestClass类作为测试主体:

图片说明