一分钟搞懂内部类

1.抽象类名作为形参和返回值

  实际上形参和返回值需要的都是new出的子类对象

  方法的形参是抽象类名/接口名,其实需要的是该抽象类的子类对象/该接口的实现类对象

 方法的返回值是抽象类名/接口名,其实返回的值是该抽象类的子类对象/该接口的实现类对象

需要向上转型

2接口作为形参和返回值

  方法的形参是接口名,其实需要的是该接口的实现类对象

 方法的返回值是接口名,其实返回的值是该接口的实现类对象

和抽象类一样

3.内部类

一般使用方式:

3.1局部内部类

3.2匿名内部类

new 父类构造器(实参列表) | 实现接口()  

{
      //匿名内部类的类体部分  匿名内部类是子类

}

从上面的定义可以看出,匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口。

两条规则。

匿名内部类不能是抽象类。

匿名内部类不能定义构造器。由于匿名内部类没有类名,所以无法定义构造器,但匿名内部类可以初始化块,可以通过初始化块来完成构造器需要完成的工作。
 

匿名内部类在开发中的使用

匿名内部类两种写法:

情况一: 接口、抽象类使用:相当于不用特意去写一个类去实现这个接口的方法,直接在实例化的时候就写好这个方法(接口、抽象类不能实例化,所以采用匿名内部类的方式来写)

这种情况就是接口或抽象类作为参数,这就在   User user=new User (new xxClass);

情况二:当接口作为参数放在方法体里的时候,用new 接口()的方式来实例独享,这时候是重新继承接口或者抽象类的方法

第二种就是不作为参数, User user=new User()

{

   重新接口的方法

}

匿名内部类的两种场景的写法 - 程序员大本营icon-default.png?t=L892https://www.pianshen.com/article/5373800293/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值