前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java-匿名子类(匿名内部类)

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

作者头像
Fisherman渔夫
发布2019-07-31 15:37:57
3.6K0
发布2019-07-31 15:37:57
举报
文章被收录于专栏:渔夫

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

一、问题的出现

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

代码语言:javascript
复制
	private static ThreadLocal<Connection> connectionHolder
		= new ThreadLocal<Connection>(){
			public Connection initialValue(){
				return DriveManager.getConnection(DB_URL);
			}
		};

二、问题的解决

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

代码语言:javascript
复制
	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");
 	   }

	}

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年07月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、问题的出现
  • 二、问题的解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档