码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 匿名内部类的使用:(一看就会!!!)


    知识点:

    匿名内部类依旧是一个类,但是没有名字,同时还是一个对象;再类的内部;

    使用方法指南:

    1. 先创建一个类,可以是接口、抽象类、普通父类
    2. 需要明确声明关系 ,父与子、实现接口、抽象方法重写            例如:XX extends XX
    3. 在另一个类中调用,写一个方法,用来 new 父类的子方法cry();
    4. 在子类重写 cry(); 方法后,自己调用该方法;
    5. 在主方法 main() 中调用子类即可;

    场景一:子类调用父类方法

    这是父类

    1. class Animal{
    2. public void cry(){
    3. System.out.println("这是父类的cry()方法~");
    4. };
    5. }

     子类 (Outer) 继承父类,实现方法重写:

    1. class Outer extends Animal{
    2. public void method(){
    3. Animal animal = new Animal() {
    4. @Override
    5. public void cry() {
    6. System.out.println("这是匿名内部类~");
    7. }
    8. };
    9. animal.cry();//调用cry()方法
    10. }

    在主函数中调用Outer子类 :

    1. public static void main(String[] args) {
    2. Outer outer = new Outer();
    3. outer.method();
    4. }

    场景2:抽象方法:

    首先定义一个抽象类,并且定义一个抽象方法:

    1. abstract class Animal {
    2. abstract public void cry();
    3. }

    再定义一个类,并且实现方法重载的方法:

    1. class Outer {
    2. public void method(){
    3. Animal animal = new Animal() {
    4. @Override
    5. public void cry() {
    6. System.out.println("这是匿名内部类~");
    7. }
    8. };
    9. animal.cry();
    10. }

     主函数:(与上文一致)

    1. public static void main(String[] args) {
    2. Outer outer = new Outer();
    3. outer.method();
    4. }

    场景3:实现接口

    首先,定义一个接口:

    1. interface Animal {
    2. public void cry();
    3. }

     再定义一个类,并且实现方法重载的方法:

    1. class Outer{
    2. public void method(){
    3. Animal animal = new Animal() {
    4. @Override
    5. public void cry() {
    6. System.out.println("这是匿名内部类~");
    7. }
    8. };
    9. animal.cry();
    10. }
    11. }

     主函数与上文一致,省略;

    运行结果:

     相信看到这里的小伙伴对匿名内部类,已经有一定的了解了。匿名内部类的使用方法很简单,主要就是实现方法的重载,不用手动创建新的对象,系统会自己分配对象名。使用方法便捷,调用简单。

     

  • 相关阅读:
    Transformer模型:Encoder的self-attention mask实现
    【论文阅读】DeepLab:语义图像分割与深度卷积网络,自然卷积,和完全连接的crf
    (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
    DevOps --- Pipeline和Yaml文件
    【Linux】select多路转接
    虚拟电厂可视化大屏,深挖痛点精准减碳
    springboot的@ConditionalOnBean注解
    25期代码随想录算法训练营第十天 | 栈与队列 part 2
    如何在 Debian/Ubuntu/Kali 上重新打包 已安装的 软件
    Java-基本数据类型
  • 原文地址:https://blog.csdn.net/qq_58341172/article/details/133843270
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号