zoukankan      html  css  js  c++  java
  • 27.1 匿名内部类的使用



    package
    day27_内部类.匿名内部类; /* * 匿名内部类: * 可以把匿名内部类看成是一个没有名字的局部内部类 * 定义在方法当中 * 必须在定义匿名内部类的时候创建他的对象 * 格式: * new 类/接口(){ * 如果是创建了继承这个类的子类对象,我们可以重写父类的方法 * 如果是创建了实现这个接口的子类对象,我们必须要实现该接口的所有方法 * }; * 原理:而是创建了继承这个类的子类对象或者是创建了实现这个接口的子类对象 * */ public class InnerDemo3 { public static void main(String[] args) { Dog d = new Dog(); d.fun(); } } class Animal { public void eat() { System.out.println("吃东西"); } } //正常写法 class Cat extends Animal { @Override public void eat() { System.out.println("猫吃鱼"); } } //匿名内部类(没有名字的局部内部类)写法 class Dog { public void fun() { /*new Animal() { @Override public void eat() { System.out.println("狗吃肉"); } }.eat(); */ Animal a = new Animal() { @Override public void eat() { System.out.println("狗吃肉"); } }; a.eat(); a.eat(); } }

    输出

    二、new 接口

    public class InnerDemo4 {
        public static void main(String[] args) {
            Outer o = new Outer();
            o.method();
        }
    }
    
    interface Inner {
        public void fun();
    }
    
    class Outer {
        public void method() {
            /*
            new Inner() {
    
                @Override
                public void fun() {
                    System.out.println("i am fun");
                }
            }.fun();
            */
    
            Inner i = new Inner() {
    
                @Override
                public void fun() {
                    System.out.println("i am fun");
                }
            };
            i.fun();
            i.fun();
        }
    }

    输出

  • 相关阅读:
    揭晓UX(用户体验)最大的秘密
    Js、jquery学习笔记
    网站建设之高速WEB的实现
    网站改版之指标分析
    Nodejs读写流
    Nodejs查找,读写文件
    网站建设之脚本加载
    如何利用CSS3编写一个满屏的布局
    如何设计自己的UI套件
    用requireJS进行模块化的网站开发
  • 原文地址:https://www.cnblogs.com/longesang/p/11243482.html
Copyright © 2011-2022 走看看