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

匿名内部类对象

时间:2023-03-30 22:11:33浏览次数:47  
标签:Fly fly 内部 对象 接口 实现 匿名 useFly new

牢记:当一个方法传入一个接口类型的参数,那么这个方法在被调用的时候,必须传入一个: 实现了该接口的实现类的对象

点击查看代码
Interface Fly{
void fly();
}
// 调用useFly方法.
// 1. 直接写一个Fly接口的实现类.
            实现类 实 = new 实现类(); // 自己定义的实现类
            useFly(实)
// 2. 接口的引用指向实现类的对象.
            Fly fly = new 实现类();
            useFly(fly);
// 以上两种姿势都不太好. 接口当中最重要的一个内容就是抽象方法,所有的功能与逻辑都是写
            在抽象方法当中的,「实现类要进行重写抽象方法,定义自己的逻辑.」. 焦点就放在抽象方法上就行了.至于
            这个实现的类名称无所谓.
// 3. 这里要注意: new不是接口,是一个实现了Fly接口的实现类.
                    Fly fly = new Fly(){
                @Override
                public void fly(){
// 核心逻辑写在这里就行了.
                }
            };
			            useFly(fly);
// 4. 去掉了临时变量,直接将匿名内部类对象写在实参的位置.
            useFly(new Fly(){
                @Override
                public void fly(){
// 核心逻辑写在这里就行了.
                }
            });
        }
	public static void useFly (Fly fly){
	}
	}
// 方法的声明/定义.
// 参数的作用: 告诉这个方法的调用者,这里需要一个Fly类型的参数.必须是这个类型的

标签:Fly,fly,内部,对象,接口,实现,匿名,useFly,new
From: https://www.cnblogs.com/qiyuancc/p/17274526.html

相关文章

  • LabVIEW面向对象范例讲解
    下面我们使用一个更贴近实际生活的例子来演示一下面向对象编程的整个流程。需求假设有一家家具店,店里只卖两种家具,桌子和椅子。我们编写一个程序来模拟一下家具店里这些家具的属性和方法。假设我们需要模拟如下的属性和方法:编号(属性):每个家具都有一个唯一的编号。成本价(属性):商店进货......
  • 进阶面向对象 - 3
    11.进阶面向对象-3super方法引入上一节课程我们知道,如果父类中的方法在派生的子类中不能满足其需求的话,可以在子类中通过重写解决这个问题但是很多情况下,父类中的方法并不是全部一点都不能用,即子类的需求往往是在父类方法实现的功能基础上提出了更多的需求而已,此时如果我们......
  • 深入面向对象 - 2
    10.深入面向对象-2隐藏数据引入classCat(object):def__init__(self,new_name,new_age):self.name=new_nameself.age=new_agedefprint_info(self):print("我是%s,今年%s了"%(self.name,self.age))#创建猫对象cat=Ca......
  • 初识面向对象 - 1
    9.初识面向对象-1引入面向对象本节将通过一个案例,先用之前我们编写的代码方式进行实现,然后分析利弊。从而引出面向对象。需求编写一个程序,完成1个学生的基本操作学生有姓名、年龄可以输出学生信息(姓名、年龄)使用面向过程的方式实现#遍历打印所有姓名-年龄defprin......
  • 面向对象七大原则
    1开闭原则(TheOpen-ClosedPrinciple,OCP)2单一职责原则3里氏替换原则(LiskovSubstitutionPrinciple,LSP)4迪米特原则(最少知道原则)(LawofDemeter,LoD)5接口隔离原则(InterfaceSegregationPrinciple,ISP)6依赖倒置原则(DependencyInversionPrinciple,DIP)7合成复......
  • CPU内部的奥秘:代码是如何被执行的?
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:景明我们以一段C代码为例,来看一下代码被编译成二进制可执行程序之后,是如何被CPU执行的。在这段代码中,只是做了非常简单的加法操作,......
  • 对象型数组做精准+模糊匹配
    前言通常情况后端返回的数组如果是英文的都是按照abcd这种方式进行排序,此时一般我们自己写或者组件自带的排序算法都是模糊排序,即输入B,会出现B***,**B**,之类,但是如果......
  • Qt源码阅读(三) 对象树管理
    对象树管理个人经验总结,如有错误或遗漏,欢迎各位大佬指正......
  • [Request对象] 笔记
    Servlet的继承体系Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法中使用request对象,查阅JavaEEAPI文档的HttpServletRequest接口re......
  • 面向对象和面向过程(封装继承多态)
    面向对象&面向过程面向过程思想步骤清晰,第一步做什么第二步做什么面对过程适合处理一些简单的问题面向对象思想物以类聚,分类的思维模式对于描述复杂的事物,为了从......