当前位置: 首页 > news >正文

匿名类

1.和类有关的匿名类

         A. 当某个类用abstract修饰时,但它没有子类继承并实现其内部的abstract方法,此时可以在主类中用该类构造对象的同时,实现

             该类中的abstract方法

         B. 当类1中的某个方法的参数是类2类型时,此时在主类中用类1创建对象并调用该方法时,在调用的同时可以重写类2中的方法

   eg:    class Cubic

            {

                  double getCubic(int n)

                  {

                          return 0;

                  }

            }

 

            abstract class Sqrt

            {

                  abstract double getSqrt(int m);

            }

 

            class A

            {

                  void f(Cubic cubic)

                  {

                        System.out.println(cubic.getCubic(3));

                  }

            }

 

            public class class5_2

            {

                  public statci void main(String args[])

                  {

                          A aa=new A();

                          Cubic cub=new Cubic();

                          aa.f(cub); 

                           

                          aa.f(new Cubic()

                                {

                                        double getCubic(int n)

                                        {

                                                return n*n*n;

                                        }

                                 }); 

                           

                          Sqrt sqrt=new Sqrt()

                          {

                                 double getSqrt(int m)

                                 {

                                       return m*m;

                                 }

                          };

                          System.out.println(sqrt.getSqrt(10));

                  }

            }

    运行以后的结果为:

    0

    27

    100

 

 

2.和接口有关的匿名类

       A. 当类1中的某个方法的参数是接口1类型,而接口1又没有子类继承时,此时在主类中用类1创建对象并调用该方法时,在调用的同时

           可以实现接口中的全部方法

       B. 如果某个接口没有子类来实现其内部的方法时,可以在主类中用该接口创建该接口对象的同时实现接口中的所有方法

   eg: 

                              interface Cubic1

{

    double getCubic1(int n);

}

 

 interface  Sqrt1

{

    double getSqrt1(int x);

}

 

 class A1

{

    void f(Cubic1 cubic)

    {

          System.out.println(cubic.getCubic(3));     

    }

}

 

public class class2 {

  public static void main(String[] args)

  {

      A1 a=new A1();

      a.f(new Cubic1()

                  {

                          double getCubic(int n)

                          {

                             return n*n*n;

                          }

                  });

       Sqrt1 ss=new Sqrt1()

                     {

                          double getSqrt(int x)

                          {

                              return x*x;

                          }

                      };

       System.out.println(ss.getSqrt(10));

 }

}

 

 运行以后的结果为:

27

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • swift学习之-- UIAlertViewController -alert
  • 系统异常
  • LVM逻辑卷管理
  • 自定义异常类
  • 第2章 AMQP模型
  • Class类
  • 使用Alcatraz为Xcode安装XActivatePowerMode插件, 从此敲代码逼格大大滴~
  • java中的数组
  • IntelliJ IDEA常用设置
  • VirtualBox安装ubuntu14.04和文件共享
  • String 类的用法
  • replace与replaceAll的区别
  • POJ 3104:Drying(二分)
  • ==与equals的区别
  • clone()函数的用法?
  • ----------
  • input实现文字超出省略号功能
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Iterator 和 for...of 循环
  • Java应用性能调优
  • Linux下的乱码问题
  • maya建模与骨骼动画快速实现人工鱼
  • mysql中InnoDB引擎中页的概念
  • Octave 入门
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Webpack 4x 之路 ( 四 )
  • 阿里云购买磁盘后挂载
  • 关于List、List?、ListObject的区别
  • 官方解决所有 npm 全局安装权限问题
  • 聊聊sentinel的DegradeSlot
  • 浏览器缓存机制分析
  • 免费小说阅读小程序
  • 译自由幺半群
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 自动记录MySQL慢查询快照脚本
  • 2017年360最后一道编程题
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 整理一些计算机基础知识!
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • $(function(){})与(function($){....})(jQuery)的区别
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (zt)最盛行的警世狂言(爆笑)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)