java随笔之接口
/*
* 接口大致上可以分为:哑接口,抽象接口,接口类
* 哑接口:就是public,protected(注意protect有包权限,只有本包才开放接口)方法
* 抽象接口:就是哑接口变为抽象方法,在前面追加abstract方法
* 接口类:就是interface 声明的类(其本质上还是个类,可继承,可向上转换)
* interface
* 接口类本身又分为抽象类,非抽象类
* 非抽象类:
* 里面所有的方法都是public(不能用protect修饰) 但是接口本身具有包访问权限
* 里面的域都是final和static的,意味着不能复写,只有一份内存
* interface可以向上转换,这直接产生多态,对消息循环很方便
* 抽象类:在接口类前面加上abstarct 修饰即可
* 唯一的区别是抽象接口类不能有域的存在
* */
public class MyInterface {
public static void main(String []args){
Man man=new Man();
man.run();
//简单的代理适配器模式
Delegate de=new Delegate();
de.run(new Adapter(man));
}
}
abstract interface action{
void run();
}
abstract class Human{
abstract void shape();//抽象方法 必须声明抽象类
Human(){
System.out.println("Human()");
}
}
class Man extends Human implements action{
void shape() {
// TODO Auto-generated method stub
System.out.println("man.shape()");
}
Man(){
System.out.println("man()");
shape();
}
public void run() {
// TODO Auto-generated method stub
System.out.println("man.run()");
}
}
class Man2 extends Human implements action{
void shape() {
// TODO Auto-generated method stub
System.out.println("man2.shape()");
}
Man2(){
System.out.println("man2()");
shape();
}
void sex(){//添加一个性别方法
}
public void run() {
// TODO Auto-generated method stub
System.out.println("man2.run()");
}
}
class Delegate{//代理action动作
void run(action act){
act.run();
}
Delegate(){
}
}
class Adapter implements action{//将对象适配成action
action act;
Adapter(Object obj){
act=(action) obj; //充分利用接口的向上转换多态特性
}
public void run() {
// TODO Auto-generated method stub
act.run();
}
}
java随笔之接口的更多相关文章
- 【转】java通用URL接口地址调用方式GET和POST方式
java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...
- Java继承和接口
接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...
- java中set接口的用法
java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特 ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- Java面向对象:接口
Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
- java抽象类和接口区别
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- java抽象类与接口的区别及用法
java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...
- 如何让Java和C++接口互相调用:JNI使用指南
如何让Java和C++接口互相调用:JNI使用指南 转自:http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos ...
随机推荐
- C#简单的连接数据库
- C++ 洛谷 P1879 [USACO06NOV]玉米田Corn Fields
没学状压DP的看一下 合法布阵问题 P1879 [USACO06NOV]玉米田Corn Fields 题意:给出一个n行m列的草地(n,m<=12),1表示肥沃,0表示贫瘠,现在要把一些牛放在 ...
- CentOs7.5安装FFmpeg
一.FFmpeg简介 FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影.转换.流功能,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat— ...
- scrapy实战3利用fiddler对手机app进行抓包爬虫图片下载(重写ImagesPipeline):
关于fiddler的使用方法参考(http://jingyan.baidu.com/article/03b2f78c7b6bb05ea237aed2.html) 本案例爬取斗鱼 app 先利用fidd ...
- Mybatis辅助神器-MyBatis Log Plugin
1. 问题描述 Java操作数据库的两台流行天王-mybatis和hibernate,mytabis和hibernate的区别不想废话了,以前用hibernate,最近几年一直用的mybatis,目前 ...
- python数据库-mongoDB的高级查询操作(55)
一.MongoDB索引 为什么使用索引? 假设有一本书,你想看第六章第六节讲的是什么,你会怎么做,一般人肯定去看目录,找到这一节对应的页数,然后翻到这一页.这就是目录索引,帮助读者快速找到想要的章节. ...
- C程序中可怕的野指针
一.疑问点指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了.下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习和 ...
- python爬虫常用正则表达式组合匹配
["\']匹配什么?(.*?)匹配什么? ["\'] ----------- 匹配单双引号 (.*?)xxx ----------- 匹配任意长度字符+xxx ...
- P4071 [SDOI2016]排列计数 题解
分析: 线性求逆元:https://blog.csdn.net/qq_34564984/article/details/52292502 代码: #include<cstdio> usin ...
- 个人永久性免费-Excel催化剂功能第24波-批量发送邮件并指点不同附件不同变量
批量发送邮件功能,对高级OFFICE用户来说,第1时间会想到使用WORD的邮件合并功能.但对于需要发送附件来说,邮件合并功能就无能为力,同样还有的限制是用户电脑上没有安装OUTLOOK,同样也不能发送 ...