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 ...
随机推荐
- Flink中的状态与容错
1.概述 Flink支持有状态计算,根据支持得不同状态类型,分别有Keyed State和Operator State.针对状态数据得持久化,Flink提供了Checkpoint机制处理:针对状态数据 ...
- POJ 1651:Multiplication Puzzle(区间DP)
http://poj.org/problem?id=1651 题意:给出n个数字,每取中间一个数,就会使得权值加上中间这个数和两边的乘积,求取剩两个数最少的权值是多少. 思路:区间dp. 一开始想了挺 ...
- Codeforces 755E:PolandBall and White-Red graph(构造+思维)
http://codeforces.com/contest/755/problem/E 题意:给出n个点和一个距离d,让你在这个n个点的图里面构造一个子图,使得这个子图的直径和补图的直径的较小值为d, ...
- 快速搭建 Windows Kubernetes
背景 接上一篇 Windows 应用容器 后,想要快速且便利的部署与管理它们,可以借助容器编排工具.对于 Windows 容器,在今天 Service Fabric 会是个更为成熟的选择,在业界有更多 ...
- 记一次linux服务器入侵应急响应
近日接到客户求助,他们收到托管电信机房的信息,通知检测到他们的一台服务器有对外发送攻击流量的行为.希望我们能协助排查问题. 一.确认安全事件 情况紧急,首先要确认安全事件的真实性.经过和服务器运维人员 ...
- Docker笔记(四):Docker镜像管理
原文地址:http://blog.jboost.cn/2019/07/16/docker-4.html 在Docker中,应用是通过容器来运行的,而容器的运行是基于镜像的,类似面向对象设计中类与对象的 ...
- STM32F072从零配置工程-串口USART配置
也是使用HAL库进行配置,通过STMCube生成代码,可以通过这个简单的配置过程看到STMCube生成代码的一种规范: 从main函数入手观察其外设配置结构: 首先是HAL_Init()进行所有外设的 ...
- 生成数据库自增不重复ID的方法
namespace ConsoleApp1 { class Program { static void Main(string[] args) { ); ; i < ; i++) { var t ...
- Android调试移动端webview
尝试了各种Mac版本的安卓模拟器,包括Android Studio.Genymotion以及国内的网易MuMu.夜神.蓝叠.腾讯手游助手,做的最好的是Android Studio,最难上手的也是And ...
- 个人永久性免费-Excel催化剂功能第66波-数据快速录入,预定义引用数据逐字提示
在前面好几波的功能中,为数据录入的规范性做了很大的改进,数据录入乃是数据应用之根,没有完整.干净的数据源,再往下游的所有数据应用场景都是空话.在目前IT化进程推进了20多年的现状,是否还仍有必要在Ex ...