• 匿名内部类的使用:(一看就会!!!)


    知识点:

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

    使用方法指南:

    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. }

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

    运行结果:

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

     

  • 相关阅读:
    网络流总结 五万字符详解(56226字符)
    Facebook改名Meta,“元宇宙”到底是什么?
    【算法】妙不可言---贪心算法
    联发科MTK(3G,4G,5G)核心板/芯片简介
    如何实现双击弹出提示并刷新图片列表的功能?
    elk:filebeat也是一个日志收集工具
    CENTOS上的网络安全工具(十一)走向Hadoop(3) MapReduce示例解析
    2023-简单点-什么是onnx?
    20220810NOI模拟赛--考后总结
    深度解析javaScript常见数据类型检查校验
  • 原文地址:https://blog.csdn.net/qq_58341172/article/details/133843270