12.接口

  1. 普通类:只有具体实现
  2. 抽象类:具体实现和规范(抽象方法)都有!
  3. 接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程~
  4. 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能.”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。
  5. 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。
  6. oo的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计 模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。

接口UserServer

package com.wang.oop.interfaceDemo.server;
//interface 定义的接口类
//接口中没有构造方法,所以不能被实例化
public interface UserServer {//接口中所有定义的变量都是 public static finalpublic static final int age = 99;//接口中所有定义的方法都是 public abstractpublic abstract void add(String name);void delete(String name);void update(String name);void query(String name);}

接口TimeServer

package com.wang.oop.interfaceDemo.server;public interface TimeServer {void timer();
}

实现类 UserServerImpl

package com.wang.oop.interfaceDemo;import com.wang.oop.interfaceDemo.server.TimeServer;
import com.wang.oop.interfaceDemo.server.UserServer;
//类可以实现接口中的方法 使用关键字 implement:实现
//实现了接口就必须重写接口中的方法
//一个实现类可以实现多个接口
//java是单继承的,但是通过接口的多实现,变相成为多继承
public class UserServerImpl implements UserServer , TimeServer {@Overridepublic void add(String name) {}@Overridepublic void delete(String name) {}@Overridepublic void update(String name) {}@Overridepublic void query(String name) {}@Overridepublic void timer() {}
}

java中什么是接口代码详解相关推荐

  1. java中math的方法_Java中Math类常用方法代码详解

    近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新... public class Demo{ public static void mai ...

  2. Java中Lambda表达式使用及详解

    Java中Lambda表达式使用及详解 前言 一.Lambda表达式的简介 Lambda表达式(闭包):java8的新特性,lambda运行将函数作为一个方法的参数,也就是函数作为参数传递到方法中.使 ...

  3. android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)

    前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...

  4. Java中的异常和处理详解

    Java中的异常和处理详解 参考文章: (1)Java中的异常和处理详解 (2)https://www.cnblogs.com/lulipro/p/7504267.html 备忘一下.

  5. python批量删除文件名中的下划线-代码详解

    删除文件名中的下划线 代码示例: 代码详解 对于文件名中出现的"_",如(500_600),将下划线消除,替换为(500600) 代码示例: import osdef rename ...

  6. java代码中设置mysql时区_关于Java中的mysql时区问题详解

    前言 话说工作十多年,mysql 还真没用几年.起初是外企银行,无法直接接触到 DB:后来一直从事架构方面,也多是解决问题为主. 这次搭建海外机房,围绕时区大家做了一番讨论.不说最终的结果是什么,期间 ...

  7. java中的setattribute_JSP request.setAttribute()详解及实例

    javascript request.setAttribute()详解 request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; ...

  8. Java中Unsafe类的原理详解与使用案例

    点击关注公众号,利用碎片时间学习 1 概述 本文基于JDK1.8. Unsafe类位于rt.jar包,Unsafe类提供了硬件级别的原子操作,类中的方法都是native方法,它们使用JNI的方式访问本 ...

  9. java中static修饰函数_详解java中static关键词的作用

    在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...

最新文章

  1. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
  2. aws lambda_恐怕您正在考虑AWS Lambda的冷启动完全错误
  3. [待总结]高频率vim命令
  4. iBatis 的插入一个实体
  5. 牛客题霸 NC21 链表内指定区间反转
  6. mysql数据库内置函数大全_MySQL数据库——内置函数
  7. [Unity][FlowCanvas] FlowScript 搜索功能不可用的解决办法:更新 UnityEditor 的版本
  8. (转)游戏程序员养成计划 (更新2010.11.6)
  9. linux分区概念理解,在linux安装中的分区概念(转)
  10. mysql之count,max,min,sum,avg,celing,floor
  11. iOS_网络_02_搭建本地Web服务器
  12. redis PUB/SUB(发布/订阅)
  13. nlv sqlserver_SQLServer数据类型及使用分析
  14. 大津二值化算法 ( Otsu's binarization ) 自动确定二值化图像时的阈值
  15. 二分法03:x 的平方根
  16. 英特尔第十代处理器为什么不支持win7_为什么i7处理器不支持win7系统,背后的真实原因?...
  17. 数据库实验一——数据库定义与操作语言实验
  18. win10更新完提示未安装任何音频输出设备2019-11-13解决
  19. 微型计算机的主机常用部件,组成微型机主机的部件是
  20. 设计模式之状态机模式

热门文章

  1. 【ZSTU4210 2015年12月浙理工校赛 A】【DFS爆搜】孙壕请一盘青岛大虾呗 n个消费点m个购物点最后一位置恰好消费完
  2. 在2012年12月03号这一天,V2.3版,想个街溜子夹着华子!
  3. 计算机图形学的功能需求,图形学课程设计要求 《计算机图形学》.doc
  4. python学习dya4
  5. 移动硬盘中装linux,移动硬盘中安装Linux(CentOS)
  6. 高新技术企业认定条件
  7. MIT-BIH心律失常数据库目录(译)
  8. linux如何脚本监控tps,对Linux进行详细的性能监控的方法
  9. wifi卡慢延迟高_WiFi明明信号满格,为何又卡又慢,问题在这里!
  10. 网络电视经常出现服务器无响应,为什么pps总是显示服务器未能响应停止播放