精华内容
下载资源
问答
  • 2020-11-02 17:34:32

    匿名内部类可不可以继承或实现接口。为什么?

    答:匿名内部类是没有名字的内部类,不能继承其它类,但一个内部类可以作 为一个接口,由另一个内部类实现. 1、由于匿名内部类没有名字,所以它没有构造函数。因为没有构造函数, 所以它必须完全借用父类的构造函数来实例化,换言之:匿名内部类完全把 创建对象的任务交给了父类去完成。 2、在匿名内部类里创建新的方法没有太大意义,但它可以通过覆盖父类的 方法达到神奇效果,如上例所示。这是多态性的体现。 3、因为匿名内部类没有名字,所以无法进行向下的强制类型转换,持有对一个匿名内部类对象引用的变量类型一定是它的直接或间接父类类型。

    更多相关内容
  • 在这篇博客中你可以了解到匿名内部类的使用、匿名内部类要注意的事项、如何初始化匿名内部类匿名内部类使用的形参为何要为final。  一、使用匿名内部类内部  匿名内部类由于没有名字,所以它的创建方式有...
  • 匿名内部类继承的关系

    千次阅读 2017-11-07 22:03:55
    当我们实现一个抽象方法时。传统的做法就是创建一个子类去继承抽象或者实现接口 然后实现里面的抽象方法 ,而匿名内部类大大简化了着一个步骤!看文件

    当我们实现一个抽象方法时。传统的做法就是创建一个子类去继承抽象类或者实现接口 然后实现里面的抽象方法 ,而匿名内部类大大简化了着一个步骤!


    关于匿名内部类:


    传统做法 :如过定义了一个接口A1 我们知道接口A1里面的方法是抽象的,那么实现A1的传统的方法就是
    找一个B类去实现这个A1接口里面的抽象方法!看代码


    public class NoInnerClassDemo2 {
    public static void main(String[] args) {
    new X1().fun1();//实例化X类对象并调用fun1()方法
    }


    }
    interface A1{  //定义接口A1
    public void printlnfo();  //定义一个接口的抽象方法
    }
    class B implements A{   //让B 去实现接口A1的抽象方法
    public void printlnfo(){
    System.out.prinltn("Hello World");
    }
    }
    class X1{//定义X1类
    public void fun1(){   //定义fun1()方法
    this.fun2(new B());
    }
    public void fun2(A1 a){  //接受接口的实例
    a.printlnfo();    //调用接口方法
    }
    }


    //假如这个接口的实现类B类只是用了一次 那么我们就没必要再单独用了,这个时候就要用到匿名内部类来完成了,看下面的代码


    public class NoInnerClassDemo2 {


    public static void main(String[] args) {

    new X1().fun1();//实例化X1类对象并调用fun1()方法

    /* X x = new X();
    x.fun1();*/
    }


    }
    interface A1{    //定义接口A1
    public void printlnfo();    //定义一个接口的抽象方法
    }
    class X1{    //定义X类
    public void fun1(){    //定义fun1()方法
    this.fun2(new A1(){    //匿名内部类
    public void printlnfo(){   //实现接口中的抽象方法
    System.out.println("匿名的实现方法啊");
    }
    });
    }
    public void fun2(A1 a){//接受接口的实例
    a.printlnfo();//调用接口方法
    }
    }


    //总结: 匿名内部类 其实比你用单独一个类 去实现接口 或 继承抽象类 里面的抽象方法方便很多!还要注意 这里面综合了 什么是实例化?
    就是你需要用到哪个类就new那个类,然后用new出来的 对象名.方法名()来调用里面的方法! 而且本题中用的实例化呢
    是根据匿名对象调用的 如主类中 new X1().fun1();//实例化X1类对象并调用fun1()方法(根据匿名对象直接调用方法)


    展开全文
  • 匿名内部类可以继承其他,但不能用extends。 可以实现某接口,但不能用implements。匿名内部类,就是没有名字的内部。故没有构造器,必须调用基类的构造器。所以是继承基类的。匿名内部类经常被用来覆盖...

    匿名内部类:
    可以继承其他类,但不能用extends。
    可以实现某接口,但不能用implements。

    匿名内部类,就是没有名字的内部类。故没有构造器,必须调用基类的构造器。所以是继承基类的。匿名内部类经常被用来覆盖基类的某些方法:

    class A{
        public void a(){
            System.out.orintln("甲");
        }
        public void b(){
            System.out.orintln("乙");
        }
    }
    
    public class B{
        public static A getA(){
            return new A(){
                public void a(){
                    System.out.println("丙");
                }
            }
        }
    }

    上面的例子,A类的a()方法打印“甲”,但B类的getA()方法返回的A类对象的引用,是打印“丙”的,因为a()方法被重写了。

    A myA = B.getA();
    myA.a(); //输出 丙
    myA.b(); //输出 乙

    由上面代码可知,A类明显就是匿名内部类的基类,因为它可以调用b()方法。

    所以匿名内部类必须继承自某个基类,但Java只接受单继承,所以就不可能再在后面加个extends 某个类。

    实现接口的情况同理可证 ,因为语法规定匿名内部类只能实现一个接口。

    展开全文
  • 匿名内部类可以继承其他,但不能用extends。 可以实现某接口,但不能用implements。 匿名内部类,就是没有名字的内部。故没有构造器,必须调用基类的构造器。所以是继承基类的。匿名内部类经常被用来覆盖基类...

    可以继承其他类或实现其他接口。不仅是可以,而是必须!
    匿名内部类:
    可以继承其他类,但不能用extends。
    可以实现某接口,但不能用implements。

    匿名内部类,就是没有名字的内部类。故没有构造器,必须调用基类的构造器。所以是继承基类的。匿名内部类经常被用来覆盖基类的某些方法:

    class A{
    public void a(){
    System.out.orintln(“甲”);
    }
    public void b(){
    System.out.orintln(“乙”);
    }
    }

    public class B{
    public static A getA(){
    return new A(){
    public void a(){
    System.out.println(“丙”);
    }
    }
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    上面的例子,A类的a()方法打印“甲”,但B类的getA()方法返回的A类对象的引用,是打印“丙”的,因为a()方法被重写了。

    A myA = B.getA();
    myA.a(); //输出 丙
    myA.b(); //输出 乙
    1
    2
    3
    由上面代码可知,A类明显就是匿名内部类的基类,因为它可以调用b()方法。

    所以匿名内部类必须继承自某个基类,但Java只接受单继承,所以就不可能再在后面加个extends 某个类。

    实现接口的情况同理可证 ,因为语法规定匿名内部类只能实现一个接口。
    ————————————————
    版权声明:本文为CSDN博主「snail_xinl」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/snail_xinl/article/details/53470869

    展开全文
  • 一个关于匿名内部类的两个问题:匿名内部类能否继承其他的 ?又能否实现接口?
  • 由于内部类对外部的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。  不过你可能要质疑,更改一下方法的不行了吗?  的确,以此作为设计内部类的理由,实在没有说服力。  真正的...
  • 匿名内部类的实现和使用例1(实现接口)例2(继承类) 什么是匿名内部类匿名内部类,顾名思义,就是不知道这个到底是什么名字,也就是不知道类名。 匿名内部类的使用场景? 匿名内部类适合创建那种只需要使用...
  • 继承类 public abstract class AbstructClass { abstract void pri(); } public class TestClass2 { public AbstructClass te(){ return new AbstructClass(){ void pri() { System....
  • 回答:匿名内部类在实现时必须借助一个借口或者一个抽象或者一个普通来构造,从这过层次上讲匿名内部类是实现了接口或者继承,但是不能通过extends或implement关键词来继承类或实现接口。 匿名内部类即...
  • 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法 abstract class Person { public abstract void eat(); } class Child extends Person
  • 1. 匿名内部类 没有(或者不需要)命名来初始化,就称为匿名内部类。 在这四种内部中,以后的工作可能遇到最多的是匿名内部类,所以说匿名内部类是最常用的一种内部。 什么是匿名对象? 如果一个对象只要...
  • 然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式:第一种,继承一个,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。下面通过代码来说明:public class ...
  • 分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!...可以继承其他或实现其他接口,在Swing编程和Android开发中常用此方式来实现事件监听和回调。 ...
  • 一个匿名内部类一定是继承一个或者实现一个接口,new了这个父类或接口名的内部还带内容,我就想问能不能还能不能继承其他或实现其他接口。 如果我表达不好,不好理解, 那问题简化就是 匿名内部类能不能...
  • Java 匿名(匿名内部类)

    万次阅读 多人点赞 2020-12-25 23:41:48
    Java匿名(匿名内部类) 学习的参考博文:无恨之都 1. 初识 匿名 标准说法: 内部包括:成员、局部、匿名(匿名内部类)。 匿名概念: 匿名类可以使你的代码更加简洁 (JDK8之后Lambda更简洁)。 你可以...
  • Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它,是否可以implements(实现)interface(接口)? 可以继承其他或实现其他接口。不仅是可以,而是必须!
  • 程序员你真的理解匿名内部类吗?

    万次阅读 多人点赞 2019-10-10 22:22:30
    为了加深各位对匿名内部类的印象、好奇心以及求知的渴望,咋们先来看一个程序,如果提到线程你会不会立马想到接口和继承?如果提到接口和继承你会不会立马想到匿名内部类? 开篇甜点 为了加深各位对匿名内部类的...
  • Java内部匿名内部类的用法

    万次阅读 多人点赞 2016-07-21 15:46:41
    Java内部匿名内部类的用法 【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/51981163一、内部: (1)内部的同名方法 内部类可以调用外部的方法,如果内部有同名方法...
  • 匿名内部类

    千次阅读 2020-11-26 22:38:33
    匿名内部类必须【继承一个父类】或者【实现一个接口】,伴随着重写父类或者父接口当中的抽象方法。 以往的操作:想要使用接口当中的方法。需要四部操作 1、定义 接口的实现 2、重写接口当中的抽象方法 3、构建子类...
  • 匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明。其语法形式如下:new(){//的主体};这种形式的 new 语句声明一个新的匿名类,它对一个给定的进行扩展,或者实现一个给定的接口。使用匿名类可使...
  • 匿名内部类实现接口,继承类

    千次阅读 2016-06-28 22:54:46
    再定义一个(构造函数不是默认的): public class Wrapping {  private int i;  public Wrapping(int x) { i = x; }  public int value() { return i; } } 先实现接口:
  • Lambda表达式与匿名内部类

    千次阅读 2019-04-24 19:27:55
    匿名内部类适合创建那种只需要一次使用的匿名内部类的语法有点奇怪,创建匿名内部类时会立即创建一个该...匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口 匿名内部类有...
  • Java匿名内部类使用与示例

    千次阅读 2021-02-25 19:47:42
    在不同的包内的内调用的protected方法(其实,也可以理解和第一个原因是一样的)匿名类继承了父类,并调用了父类的protected方法条件:匿名类完成上述使命,则需要继承一个或者实现某个接口形式:new 示例1:/**...
  • /*** 匿名内部类的概念和特性:* 1、匿名内部类只能也必须(有且仅有)继承一个父类或者实现一个接口,也可以重写父类普通方法;* 2、匿名内部类不能是抽象,因为定义匿名内部类时立即生成对象,而抽象不允许生成...
  • 可以。而且必须实现接口或继承其他
  • c++中也有java中的匿名内部类

    千次阅读 2020-05-21 17:04:09
    写在其他内部可以写在其他的成员位置或局部位置,这种写在其他类内部就称为内部类。其他也称为外部。 什么时候使用内部类 在描述事物时,若一个事物内部还包含其他可能包含的事物,比如在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 117,324
精华内容 46,929
关键字:

匿名内部类可以继承吗