您的位置 首页 java

“全栈2019”Java第一百零五章:匿名内部类覆盖作用域成员详解

难度

初级

学习时间

10分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。

1.匿名内部类学习资料

没有学习过的同学或者是不太清楚局部内部类的同学也别急,可以点击下面局部内部类学习资料来进行学习。

2.匿名内部类覆盖作用域内成员

演示:

请在Main类中定义一个抽象内部类 People ,并在其中定义一个抽象方法。

在Main类main()方法中创建一个People的匿名内部类对象。

在main()方法中定义变量和常量。

在匿名内部类中定义实例变量和常量。

在匿名内部类抽象方法中访问变量和常量。

请观察程序运行结果。

代码:

Main类:

结果:

从运行结果来看,程序没有任何问题。

我们简单的来看一下程序。首先,我们来看一下静态抽象内部类People:

为什么是静态抽象内部类呢?

因为我们要在 静态方法 里面使用匿名内部类:

所以,抽象内部类必须是静态的。

我们可以看到在静态抽象内部类里面定义了一个抽象方法:

目的是创建了匿名内部类对象以后有方法可以调用,这是其一。其二是匿名内部类里面要有一个方法去访问到作用域内的成员,所以需要定义一个抽象方法。

再来看作用域内定义的成员:

匿名内部类里面也定义了变量和常量:

该定义的变量和常量和作用域内成员的类型和名称一样,但是值不一样。

我们也可以看到抽象方法去访问到这些成员:

此次访问的是作用域内的成员呢?还是匿名内部类自身成员呢?

使用匿名内部类对象调用其方法。执行结果:

可以看到,此次访问的是匿名内部类里面的成员,说明当作用域和匿名内部类有一样成员时,匿名内部类成员会覆盖作用域成员。

到这里,程序执行完毕!

总结

  • 当作用域内有和匿名内部类里一样成员时,匿名内部类成员会覆盖掉作用域内成员。

至此,Java中匿名内部类与作用域成员覆盖相关内容讲解先告一段落,更多内容请持续关注。

附:类学习资料

附: 抽象类 学习资料

附:接口学习资料

附:内部类学习资料

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

下一章

“全栈2019”Java第一百零六章:匿名内部类与抽象类接口注意事项

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

版权声明

原创不易,未经允许不得转载!

文章来源:智云一二三科技

文章标题:“全栈2019”Java第一百零五章:匿名内部类覆盖作用域成员详解

文章地址:https://www.zhihuclub.com/193919.shtml

关于作者: 智云科技

热门文章

网站地图