Java接口与实例化
看代码看到
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接口与实例化的更多相关文章
- java接口
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
- java 接口和抽象类的区别
java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...
- java 接口(上)
1.接口中的方法都是抽象方法.而普通的抽象类里面不一定都是抽象方法.抽象类中必须有抽象方法,同时也可以有非抽象方法.继承抽象父类的子类中,如果依然有抽象方法,那么这个子类也是抽象类.即只要类中有抽象方 ...
- python面向对象进阶 反射 单例模式 以及python实现类似java接口功能
本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...
- Java接口的表现形式
一.概念理解 Java接口是一些方法特征的集合,并没有方法的具体实现,类似于电源插座,可以充不同类型的电器,但是必须适配特定的接口规范.接口是抽象化的,所以其不能被实例化的(不能有构造函数,创建对象) ...
- Java 接口和抽象类差别
原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想非常大程度上取决于它的总体架构,而这个总体架构事实上 ...
- 对接第三方平台JAVA接口问题推送和解决
前言 本节所讲为实际项目中与第三方对接出现的问题最后还是靠老大解决了问题以此作为备忘录,本篇分为三小节,一小节解析Java加密接口数据,二小节解析XML文件需注意问题,最后一节则是请求Java Soa ...
- java:接口特性 接口与抽象类/普通类的区别
接口 书面定义: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 在ja ...
- java 接口详解
定义接口 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口.Java 接口本身没有任何实现,只描述 public 行为,因此 Java 接口比 Java 抽象类更抽象化.Jav ...
随机推荐
- Android 定位地理坐标体系
参考: 中国特色 火星坐标 iOS 火星坐标相关整理及解决方案汇总 百度地图坐标转换API 地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02)百度坐标系 (BD-09) 的转换算法 火星坐标 ...
- Codeforces Round #233 (Div. 2) A、Pages
#include <iostream> using namespace std; int main(){ int n,p,k; cin >> n >> p > ...
- LinkedHashMap和HashMap的比较使用(转)
(转)http://www.cnblogs.com/hubingxu/archive/2012/02/21/2361281.html import java.util.HashMap; import ...
- JS:操作样式表2 :用JS实现添加和删除一个类名的功能(addClass()和removeClass())
var box = document.getElementById("box"); box.id = "pox"; 将id = “box”,改为id = “po ...
- linux ps指令
ps axjf <==連同部分程序樹狀態
- Flex Flash Player回声消除的最佳方法
Adobe Flash Player 已经成为音频和视频播放的非常流行的工具.实际上,目前大多数因特网视频均使用 Flash Player观看. Flash Player 通过将许多技术进行组合可以提 ...
- XML参考 :XmlReader 详解、实例
XML参考 :XmlReader 详解.实例-- 详解 转:http://www.cnblogs.com/Dlonghow/archive/2008/07/28/1252191.html XML参考 ...
- Jquery实现MD5加密
$.md5("你想要加密的字符串"); md5插件下载地址:http://xiazai.jb51.net/201003/yuanma/jquery_md5.rar <!DOC ...
- (转)as3效率优化
1.改进算法无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了 ...
- Odoo Website 替换 Summernote 为第三方富文本编辑器
随着用odoo的人越来越多,奇葩的需求也是越来越多.... 这不,有同学就想替换掉website forum里边的summernote控件,花了点时间研究了一下,先说结论:替换是可行的. 先上替换之后 ...