专栏首页渔夫Java-匿名子类(匿名内部类)

Java-匿名子类(匿名内部类)

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

一、问题的出现

 最近在翻看《Java并发编程实战》一书的时候,看到了一段令人费解的代码,在使用new关键字进行构造方法的时候,后还加了大括号{…},并且写了一个方法。

	private static ThreadLocal<Connection> connectionHolder
		= new ThreadLocal<Connection>(){
			public Connection initialValue(){
				return DriveManager.getConnection(DB_URL);
			}
		};

二、问题的解决

 此处语法是Java的匿名子类。匿名子类的格式是就是 方法名(new 构造器){ 调用方法/重写方法 }

	public class Demo_ThreadLocal {
    public static void main(String[] args) {
        Test t = new Test() {
            @Override
            public void method1() {
                System.out.println("2222222222222");
            }
        };
        t.method1();
        Test t2 = new Test() {
            public void method1() {
                super.method3();
                System.out.println("222222222222222");
            }
        };
        t2.method1();
	    }

	}

	class Test {
    public void method1() {
        System.out.println("11111111111111");
    }
    public void method3(){
        System.out.println("333333333333");
 	   }

	}

 如果子类构造器中对父类方法进行重写,那么就调用重写的方法,这就是匿名子类的语法特性与目的。我们既可以在匿名子类中进行调用父类的方法,也可以在匿名子类中重写父类的方法以及直接调用父类方法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java-抽象

    版权声明: ...

    Fisherman渔夫
  • Andorid-ListView简单使用以及BaseAdapter入门

    一个很简单的ListView,自己写下Item,然后加载点数据这样~ 下面贴下关键代码:

    Fisherman渔夫
  • Java并发编程实战-内置锁不是重入的,那么这段代码将发生死锁-以及书籍勘误

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Fisherman渔夫
  • 第二阶段-Java面向对象:【第三章 多态】

    当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

    BWH_Steven
  • Condition控制线程通信:java三个线程循环打印ABC

    private Lock lock = new ReentrantLock(); private Condition c1 = lock.newConditi...

    用户1215919
  • 【设计模式】—— 访问者模式Visitor

      模式意图   对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。此时,就是访问者模式的典型应用了。   应用场景   1 不同的子类...

    用户1154259
  • 设计模式-中介者

    cwl_java
  • TransactionTemplate编程式事务管理

    之前使用 JDBC API 操作, 经常用到的对象有: connection 和 preparedStatement. dbConnection.setAuto...

    IT技术小咖
  • spring 自定义配置属性

    完成以上几步后构建项目就会在META-INF下生成文件spring-configuration-metadata.json里面包含配置属性的信息 在IDEA环...

    路过君
  • Android组件化-经典MVP

    Android MVP是安卓开发中一个经典的话题,当项目较大、参与的开发人员较多,MVP的优势就体现出来了。

    用户2987604

扫码关注云+社区

领取腾讯云代金券