原来Java还可以这样写——实现‘内部 接口’

在看高人写的代码的时候,发现原来接口还可以这样实现。很有趣啊!

接口A:
package com.why;

public interface InterfaceA {
    public void sayA();
}

接口B:
package com.why;

public interface InterfaceB {
    public void sayB();
}

实现A,B
package com.why;

public class ClassA {
   
   
    public static void main(String args[]){
       
        InterfaceA a=new InterfaceA(){

            @Override
            public void sayA() {
                // TODO Auto-generated method stub
                System.out.println("I am a A.");
            }
           
        };
       
        InterfaceB b=new InterfaceB(){
            public void sayB(){
                System.out.println("I am a B.");
            }
        };   
        //must have ; in here.
       
        a.sayA();
        b.sayB();
    }
}

输出:   I am a A.
               I am a B.

         注意的地方,需要将这个接口类,放进某个方法里。因为它还是一个变量,如果不放进去,就需要变成static(还不太明白为什么,呵呵).还有需要在结尾处放 ; 号。其它就没什么了。

         终结,以我愚见,这样写的好处可以减少无用类的定义。因为这些接口的实现类,只在这个方法中使用一次,没有必要在单独写出一个文件 类。所以就使用这种方式

时间: 2024-09-28 02:37:52

原来Java还可以这样写——实现‘内部 接口’的相关文章

微网站-微信公众平台内部接口调整,以前写的代码用不了了,有懂这一块的高手帮帮忙吧

问题描述 微信公众平台内部接口调整,以前写的代码用不了了,有懂这一块的高手帮帮忙吧 近几日微信公众平台内部接口调整主要有: 1.自定义菜单生成验证方式改变,部分用户生成自定义菜单会有curl_35问题 2.公众平台不再接受一键拨号类的tel:协议,含有此类自定义菜单的一律不通过,表现为生成的时候出现:sub button url..... 就是提示自定义菜单中不能含有一键拨号类信息 3.url和token绑定的时候验证时间缩短,导致部分服务器本身反映不够快的客户url超时 以前写的代码用不了了,

mybatis-手机app后台接口用java怎么写?

问题描述 手机app后台接口用java怎么写? 有没有demo可以提供的?听说用rest.rest不是有get.put吗?那样不是不安全吗? 解决方案 restful api之上你可以附加一些参数,比如appkey,secretid,sign等,伪造的程序因为对不上这些参数,所以不可以调用. 解决方案二: 可以使用网络协议 或者 对数据接口参数进行签名,后台验证签名通过才可操作 否则直接返回 解决方案三: 后台一般来说是基于网络协议的,如果你想和app进行交互的话可以通过htto请求来进行数据的

asp调用java 写的webservice接口怎么用啊!(在线等)

问题描述 路过的各位朋友,asp调用java写的webservice接口怎么用啊!一个很简单的例子,就是传个参数进去,然后返回出来就可以了! 解决方案 解决方案二:根据权威机构的调查,搜索引擎的前4名网站一般会获得较高的访问量.但是如果想要使自己的网站排在前4名,竞价花费的价格是非常高的.而花费少的话,网站排名靠后,导致竞价排名的效果大打折扣.毫无疑问,每个客户都希望自己的网站排在搜索引擎的首页,但是同样是页,第一名和第十名的竞价价格也许会2倍甚至更多.对于大多说发展期的公司来说,往往需要抉择选

java中方法A实现接口B,方法C实现方法D,分别应该如何写

问题描述 java中方法A实现接口B,方法C实现方法D,分别应该如何写 java中方法A实现接口B,方法C实现方法D,分别应该如何写 我不确定有没有方法C实现方法D这种说法的呢 解决方案 方法C实现方法D,没这种说法,方法只能复写基类的方法,没有实现一说. 解决方案二: 继承方法 实现接口 解决方案三: 是实现类 ,而不是方法实现接口 ,那是接口的实现类

JAVA集合框架之List接口实现类

上一篇博客<JAVA集合框架之Set接口实现类>中介绍了Set接口的相关实现类,这一篇将介绍List接口的实现类. java.util.ArrayList< E > ArrayList有点类似于数组,相比较于数组而言,ArrayList可以动态的更改元素个数,相对于数组较为灵活. 每个 ArrayList 实例都有一个容量.该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向 ArrayList 中不断添加元素,其容量也自动增长.并未指定增长策略的细节,因为这不

JAVA基础培训(8),认识接口

这讲我们来重点熟悉接口的使用,包括接口的声明,继承,属性的定义以及类的实现 等. 最终的目录结构 先看相关的代码 lession8/Lession8.java package lession8; import lession8.otherpackage.InterfaceOtherPackagePublic; /** * 老紫竹JAVA基础培训(8),认识接口.<br> * * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Less

java序列化1[实现Serializable接口]

 * java默认序列化  * 1.实现Serializable接口(约定)  * 2.序列化和反序列化  * 3.实现java对象和字节序列的转换  * 4.将对象的字节序列(内存)持久化到磁盘(通常为文件),高并发session处理(减轻内存压力)  * 5.网络传输对象的字节序列,两个进程实现远程网络通信,(所有数据类型,都以二进制序列形式在网络上传送(接受发送))  * 6.实现Serializable接口的类采用默认的序列化方式 .* 7.静态变量(类变量)和transient修饰变量

方法嵌套方法-java中非static方法内部能否嵌套非static方法?

问题描述 java中非static方法内部能否嵌套非static方法? class NiMingLei { public static void main(String[] args) { Outer a= new Outer(); a.function(); } } class Outer { static int y=4; void function() { void show() { System.out.println(123); } class Inter { void method(

Java面向对象高级--抽象类与接口的应用

1.为抽象类和接口实例化 抽象类和接口不能直接实例化,因为其内部包含了各个抽象方法,抽象方法本身都是未实现的方法,所以无法调用.通过对象多态性,子类发生了向上转型之后,所调用的全部方法都是被覆写过了的方法. 为抽象类实例化: abstract class A{ // 定义抽象类A public abstract void print() ; // 定义抽象方法print() }; class B extends A { // 定义子类,继承抽象类 public void print(){ //