192、193 匿名内部类

11 篇文章 0 订阅

192 匿名内部类

全称:匿名局部内部类,在方法里面定义的类

前提

存在一个类或者接口,可以是具体类也可以是抽象类

-

> 匿名内部类是一种对象,继承了类或者接口

本质

匿名内部类是一个继承了类或者实现了接口的子类匿名对象

-

格式

new 类名or接口名(){

重写方法

}

例如

new Inner(){

  public void show(){

  }

};

myInnerclass

itheima04

--------------------------------------------------------------

package itheima04E192;

public class Outer {

    public void method(){

        /*

        new Inter(){

            @Override

            public void show() {

                System.out.println("匿名局部内部类");

            }

        }.show();

        //定义完匿名内部类,无需创建对象,调用下方法即可实例化

        //匿名内部类调用方法,是在下花括号-分号 的中间,加上.方法名()

        */

        //如何多次使用匿名内部类?——给它一个对象名,用对象名调用方法。但这样就不能再用直接在分号前加方法名的方式了,要用对象名.方法名的方法

        Inter i = new Inter(){

            @Override

            public void show() {

                System.out.println("匿名局部内部类");

            }

        };

        i.show();

        i.show();

    }

    

}

--------------------------------------------------------------

package itheima04E192;

public interface Inter {

    void show();

}

--------------------------------------------------------------

package itheima04E192;

public class OuterDemo {

    public static void main(String[] args) {

        Outer o = new Outer();

        o.method();

    }

}

193匿名内部类在开发中的使用

myInnerclass

itheima05

--------------------------------------------------------------

package itheima05E193;

public interface Jumpping {

    void jump();

}

--------------------------------------------------------------

package itheima05E193;

public class JumppingDemo {

    public static void main(String[] args) {

        //创建JumppingOperator的对象并调用方法

        JumppingOperator jo = new JumppingOperator();

        /*

        Jumpping j = new Zi();

        jo.method(j);

        */

        //可以不创建接口实现类即实例化接口,这需要在测试类里重写接口的方法

        jo.method(new Jumpping() {

            @Override

            public void jump() {

                System.out.println("--------");

                System.out.println("193/无子类的接口实例化");

            }

        });

    }

}

--------------------------------------------------------------

package itheima05E193;

public class JumppingOperator {

    //创建接口操作类的对象,并调用jump方法

    public void method(Jumpping j){

        j.jump();

    }

}

--------------------------------------------------------------

package itheima05E193;

public class Zi implements Jumpping{

    @Override

    public void jump() {

        System.out.println("193/猫猫跳高");

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值