看代码看到

public Runnable r = new Runnable()
{
@Override
public void run()
{
...
}
}

接口不能new ,不过可以生成一个匿名类,省略了写一个具体类实现接口的开销。

public class Main {

    public static void main(String[] args)  {
String a=new CustomerImpl().sayHello("hongda");
System.out.println(a);
String b=new Customer(){
public String sayHello(String name){
return "Hello2 "+name;
}
}.sayHello("hongdada");
System.out.println(b); }
} interface Customer {
public String sayHello(String name);
} class CustomerImpl implements Customer {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
Hello, hongda
Hello2 hongdada

如果接口内有多个方法呢?

public class Main {

    public static void main(String[] args)  {
String a=new CustomerImpl().sayHello("hongda");
System.out.println(a);
String b=new Customer(){
public String sayHello(String name){
return "Hello2 "+name;
}
}.sayHello("hongdada");
System.out.println(b); }
} interface Customer {
public String sayHello(String name);
public int Add(int a ,int b);
} class CustomerImpl implements Customer {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
@Override
public int Add(int a ,int b){
return a+b;
}
}
Error:(8, 32) java: <匿名com.company.Main$1>不是抽象的, 并且未覆盖com.company.Customer中的抽象方法Add(int,int)

匿名类内部实现接口全部方法:

public class Main {

    public static void main(String[] args)  {
String a=new CustomerImpl().sayHello("hongda");
System.out.println(a);
String b=new Customer(){
public String sayHello(String name){
return "Hello2 "+name;
}
public int Add(int a ,int b){
return a+b;
}
}.sayHello("hongdada");
System.out.println(b); }
} interface Customer {
public String sayHello(String name);
public int Add(int a ,int b);
} class CustomerImpl implements Customer {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
@Override
public int Add(int a ,int b){
return a+b;
}
}
Hello, hongda
Hello2 hongdada

这种实现接口方式其实就是一个实现一个继承接口的匿名类。

http://blog.sina.com.cn/s/blog_70441c8e0101sgnf.html

Java接口与实例化的更多相关文章

  1. java接口

    一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...

  2. java 接口和抽象类的区别

    java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...

  3. java 接口(上)

    1.接口中的方法都是抽象方法.而普通的抽象类里面不一定都是抽象方法.抽象类中必须有抽象方法,同时也可以有非抽象方法.继承抽象父类的子类中,如果依然有抽象方法,那么这个子类也是抽象类.即只要类中有抽象方 ...

  4. python面向对象进阶 反射 单例模式 以及python实现类似java接口功能

    本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...

  5. Java接口的表现形式

    一.概念理解 Java接口是一些方法特征的集合,并没有方法的具体实现,类似于电源插座,可以充不同类型的电器,但是必须适配特定的接口规范.接口是抽象化的,所以其不能被实例化的(不能有构造函数,创建对象) ...

  6. Java 接口和抽象类差别

    原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想非常大程度上取决于它的总体架构,而这个总体架构事实上 ...

  7. 对接第三方平台JAVA接口问题推送和解决

    前言 本节所讲为实际项目中与第三方对接出现的问题最后还是靠老大解决了问题以此作为备忘录,本篇分为三小节,一小节解析Java加密接口数据,二小节解析XML文件需注意问题,最后一节则是请求Java Soa ...

  8. java:接口特性 接口与抽象类/普通类的区别

    接口 书面定义: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 在ja ...

  9. java 接口详解

    定义接口 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口.Java 接口本身没有任何实现,只描述 public 行为,因此 Java 接口比 Java 抽象类更抽象化.Jav ...

随机推荐

  1. Android Mvc 实现

    android studio java目录结构: Activity package目录:Controller 层 Model package目录:Model 层 View package目录:View ...

  2. Android ftp 上传图片

    1.确定ftp文件夹 /** FTP文件夹 **/ private String ftpPath = "hshscrenncap" + "/" + DateUt ...

  3. Coder-Strike 2014 - Round 1 C. Pattern

    题目的意思是给出n个长度相同的字符串然后找出与他们匹配的字符串 将字符串存入类似二维数组的里面,每一行代表一个字符串,遍历每列,判断每列是否有公共的匹配字符,如果有输出任意一个 如果没有输出'?' # ...

  4. ACM Binary String Matching

    Binary String Matching 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Given two strings A and B, whose alp ...

  5. 51Nod 1256 乘法逆元 Label:exgcd

    1256 乘法逆元 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K ...

  6. URAL 1119. Metro(DP)

    水题. #include <cstring> #include <cstdio> #include <string> #include <iostream&g ...

  7. SQL 学习笔记

    1.判断数据库中某个值是否为null(而不是'null',空字符串'',若干个空格' ') 一定不能用=null 或 !=null,而要用is null 或 is not null. 2.在sqlse ...

  8. 闲扯淡json格式与对象

    在这里推荐使用http://json.tongxiehui.net/ 这个在线解析jso格式 JSON 语法是 JavaScript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保 ...

  9. 解决clang: error: no such file or directory: such file or directory:的问题

    一,详细问题描述 clang: error: no such file or directory: 'xxx/src/GGBaCollectionViewCell.m' clang: error: n ...

  10. iis中MIME类型的介绍与使用

    今天在服务器上碰到由.mp3格式转化生成的.m4r格式不能被浏览器访问(MP3与m4r在同个域名目录下eg:www.abc.com/1.m4r) 解决办法: 1.选中文件所在的站点: 2.找到MIME ...