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


    知识点:

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

    使用方法指南:

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

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

    运行结果:

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

     

  • 相关阅读:
    MyBatis的使用(XML映射文件)
    linux 中 tar \ zip 解压错误后撤回
    小学妹刚毕业没地方住想来借宿?于是我连夜用Python给她找了个好房子,我真是太机智了
    详细讲解网络协议:TCP和UDP什么区别?
    解决Vue多次传递重复参数会报错
    离线数仓同步数据3
    使用DataGrip对Hive进行操作
    行业洞察 | 如何更好的实现与虚拟人的互动体验?
    学习笔记4--导航与定位技术
    JUC系列(六) 线程池
  • 原文地址:https://blog.csdn.net/qq_58341172/article/details/133843270