首页 > 其他分享 >匿名内部类

匿名内部类

时间:2024-09-27 20:12:00浏览次数:6  
标签:fun1 内部 void Inter1 接口 匿名 new public

匿名内部类:
new 接口名/抽象类名(){
//重写接口或者抽象类中的方法
}
就意味着JVM在运行过程中做了几件事:
1、JVM内部自己创建一个类
2、这个类实现一个接口或者继承了一个抽象类
3、将这个类的对象创建出来

interface Inter1{  //定义一个接口
    void fun1();
}

class InterImpl implements Inter1{  //一个具体实现该接口的类
    public void fun1(){
        System.out.println("今天上课很开心");
    }
}
class Demo{
    public void fun2(Inter1 inter1){  //将接口名作为一个参数类型,传入的值必须是一个具体实现该接口的类
        inter1.fun1();     //该对象调用具体实现该接口的子类重写的fun1方法
    }
}

public class NiMingClassDemo1 {
    public static void main(String[] args) {
        Demo demo = new Demo();   //创建一个Demo对象
        demo.fun2(new InterImpl());   // 基本用法(这么做很麻烦):用对象去调用里面的方法,方法里面传入具体实现该接口的子类的对象

之前我们的写法是这样的,但是这样很麻烦,当我实现这个接口里面的方法使用不同,那我需要自己再去写一个类去实现这个方法并进行重写
这时候我们就可以使用内部类,如下:

demo.fun2(new Inter1() {  //高级用法:使用匿名内部类,调用该方法时括号里面传入该接口名的对象+回车,就相当于创建了一个具体实现该子类的对象
            @Override
            public void fun1() {
                System.out.println("今天上课不开心");
            }
        });

标签:fun1,内部,void,Inter1,接口,匿名,new,public
From: https://www.cnblogs.com/ndmtzwdx/p/18436480

相关文章

  • 局部内部类
    局部内部类:将一个类定义在一个方法的内部,只能在方法的内部使用classOuter3{publicvoidfun1(){//局部变量inta=10;}publicvoidshow1(){intb=11;//若是被局部内部类使用的话,JDK1.8之后JVM默认会加上final//局部......
  • javascript 匿名函数之立即执行
    函数分为具名函数和匿名函数,具名函数需要先声明在进行调用,而匿名函数是完全没有值。例如:我们设置点击事件中的function就是匿名函数document.addEventListener('click',function(){})我们可以设置匿名函数立即执行。好处是一方面可以防止变量污染,另外一方面,......
  • Axure解决列表项中"触发内部元件交互"的冲突问题
    背景在绘制列表项中“更多”菜单按钮的时候,我想在我鼠标悬浮上去时会出现一个底色的效果如下图:但我在做的过程中发现如果在一个组下勾选了"触发内部元件鼠标交互样式",那你鼠标还没放到"更多"按钮上就已经给触发了制作过程1、所需元件2、结构3、只需要在"更多"这个......
  • kedro package 项目运行内部处理
    kedropackage会将开发的datapipeline项目构建为一个标准的pythonwhl格式包(build模块),之后我们就可以直接基于项目模块运行开发的pipeline了,以下简单说明下内部处理项目结构为了将kedropipeline项目提供为一个可以通过模块直接运行的,kedrostarter包含了一个__main__.p......
  • golang学习笔记13-函数(二):init函数,匿名函数,闭包,defer
    注:本人已有C,C++,Python基础,只写本人认为的重点。这个知识点基本属于go的特性,比较重要,需要认真分析。一、init函数每个文件都可以定义init函数,它会在main函数执行前被调用,无论它的定义位置是在main后还是前。而全局变量的优先级又高于init,所以优先级是这样的:全局变量>init......
  • CPU内部结构域寄存器
    CPU内部结构域寄存器64位和32位系统区别:寄存器是CPU内部最基本的存储单元。CPU对外是通过总线(地址、控制、数据)来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那么这个CPU就叫8位CPU。如果总线是32位,寄存器也是32位的,那么这......
  • 最新版今日头条独家内部玩法,单号轻松简单日入2张
    今日头条作为流行的新闻和内容平台,为内容创作者提供了一个展示和盈利的机会。本文档详细介绍了利用特定工具在今日头条上进行文章创作的流程和优势。项目背景随着移动互联网的普及,越来越多的用户通过手机应用获取信息。今日头条凭借其算法推荐系统,成为用户获取信息的重......
  • k8s 访问一个 外部内部地址 代理到外网 作用是 k8s节点不直接开启外网ip
    nginx服务器访问本地的内网地址怎么代理访问到百度  要通过Nginx服务器代理访问到百度,你可以配置Nginx进行反向代理。以下是配置Nginx反向代理的步骤:安装Nginx:确保你的服务器上已经安装了Nginx。如果尚未安......
  • Java面向对象——内部类(成员内部类、静态内部类、局部内部类、匿名内部类,完整详解附有
    文章目录内部类17.1概述17.2成员内部类17.2.1获取成员内部类对象17.2.2成员内部类内存图17.3静态内部类17.4局部内部类17.5匿名内部类17.5.1概述内部类17.1概述写在一个类里面的类叫内部类,即在一个类的里面再定义一个类。如,A类的里面的定义B类,B类就称内部类......
  • 最新版今日头条独家内部玩法,单号轻松简单日入2张
    今日头条作为流行的新闻和内容平台,为内容创作者提供了一个展示和盈利的机会。本文档详细介绍了利用特定工具在今日头条上进行文章创作的流程和优势。项目背景随着移动互联网的普及,越来越多的用户通过手机应用获取信息。今日头条凭借其算法推荐系统,成为用户获取信息的重......