java中什么是接口代码详解
12.接口
- 普通类:只有具体实现
- 抽象类:具体实现和规范(抽象方法)都有!
- 接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程~
- 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能.”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。
- 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。
- 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中什么是接口代码详解相关推荐
- java中math的方法_Java中Math类常用方法代码详解
近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新... public class Demo{ public static void mai ...
- Java中Lambda表达式使用及详解
Java中Lambda表达式使用及详解 前言 一.Lambda表达式的简介 Lambda表达式(闭包):java8的新特性,lambda运行将函数作为一个方法的参数,也就是函数作为参数传递到方法中.使 ...
- android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)
前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...
- Java中的异常和处理详解
Java中的异常和处理详解 参考文章: (1)Java中的异常和处理详解 (2)https://www.cnblogs.com/lulipro/p/7504267.html 备忘一下.
- python批量删除文件名中的下划线-代码详解
删除文件名中的下划线 代码示例: 代码详解 对于文件名中出现的"_",如(500_600),将下划线消除,替换为(500600) 代码示例: import osdef rename ...
- java代码中设置mysql时区_关于Java中的mysql时区问题详解
前言 话说工作十多年,mysql 还真没用几年.起初是外企银行,无法直接接触到 DB:后来一直从事架构方面,也多是解决问题为主. 这次搭建海外机房,围绕时区大家做了一番讨论.不说最终的结果是什么,期间 ...
- java中的setattribute_JSP request.setAttribute()详解及实例
javascript request.setAttribute()详解 request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; ...
- Java中Unsafe类的原理详解与使用案例
点击关注公众号,利用碎片时间学习 1 概述 本文基于JDK1.8. Unsafe类位于rt.jar包,Unsafe类提供了硬件级别的原子操作,类中的方法都是native方法,它们使用JNI的方式访问本 ...
- java中static修饰函数_详解java中static关键词的作用
在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...
最新文章
- springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
- aws lambda_恐怕您正在考虑AWS Lambda的冷启动完全错误
- [待总结]高频率vim命令
- iBatis 的插入一个实体
- 牛客题霸 NC21 链表内指定区间反转
- mysql数据库内置函数大全_MySQL数据库——内置函数
- [Unity][FlowCanvas] FlowScript 搜索功能不可用的解决办法:更新 UnityEditor 的版本
- (转)游戏程序员养成计划 (更新2010.11.6)
- linux分区概念理解,在linux安装中的分区概念(转)
- mysql之count,max,min,sum,avg,celing,floor
- iOS_网络_02_搭建本地Web服务器
- redis PUB/SUB(发布/订阅)
- nlv sqlserver_SQLServer数据类型及使用分析
- 大津二值化算法 ( Otsu's binarization ) 自动确定二值化图像时的阈值
- 二分法03:x 的平方根
- 英特尔第十代处理器为什么不支持win7_为什么i7处理器不支持win7系统,背后的真实原因?...
- 数据库实验一——数据库定义与操作语言实验
- win10更新完提示未安装任何音频输出设备2019-11-13解决
- 微型计算机的主机常用部件,组成微型机主机的部件是
- 设计模式之状态机模式
热门文章
- 【ZSTU4210 2015年12月浙理工校赛 A】【DFS爆搜】孙壕请一盘青岛大虾呗 n个消费点m个购物点最后一位置恰好消费完
- 在2012年12月03号这一天,V2.3版,想个街溜子夹着华子!
- 计算机图形学的功能需求,图形学课程设计要求 《计算机图形学》.doc
- python学习dya4
- 移动硬盘中装linux,移动硬盘中安装Linux(CentOS)
- 高新技术企业认定条件
- MIT-BIH心律失常数据库目录(译)
- linux如何脚本监控tps,对Linux进行详细的性能监控的方法
- wifi卡慢延迟高_WiFi明明信号满格,为何又卡又慢,问题在这里!
- 网络电视经常出现服务器无响应,为什么pps总是显示服务器未能响应停止播放