接口(interface)
1 package cn.bjsxt.oop.testInterface; 2 /** 3 * 接口 是最抽象的类 只有声明 实现交给实现类 设计合实现分离 4 * 只有常量和抽象方法 JDK1.8之后 接口里也可以有普通方法(非抽象方法) 但必须加上default public default void test(){方法体} 5 * @author Administrator 6 *容易分工 各自实现 7 */ 8 public interface MyInterface { 9 //只有常量和抽象方法 10 //接口中定义常量 public static final 是默认的 写不写都有 11 /*public static final */String MAX_GRADE = "BOSS"; 12 int MAX_SPEED = 120; 13
JDK1.8之后 接口里也可以有普通方法(非抽象方法) 但必须加上default
public default void test(){方法体}
14 /*public abstract*/ void test01(); 15 /*public abstract*/ int test02(int a,int b); 16 17 18 }
1 package cn.bjsxt.oop.testInterface; 2 3 public class MyClass implements MyInterface { 4 5 @Override 6 public void test01() { 7 // 8 System.out.println("test01"); 9 } 10 11 @Override 12 public int test02(int a, int b) { 13 // TODO Auto-generated method stub 14 return a+b; 15 } 16 17 }
1 package cn.bjsxt.oop.testInterface; 2 /** 3 * 实现类可以实现多个接口 4 * @author Administrator 5 * 6 */ 7 public interface Flyable { 8 int MAX_SPEED=11000; 9 int MIN_HEIGHT=1; 10 /*public*/void fly(); 11 } 12 interface Attack{ 13 void hit(); 14 } 15 class Plane implements Flyable{ 16 17 @Override 18 public void fly() { 19 // TODO Auto-generated method stub 20 System.out.println("飞机依靠发动机飞行"); 21 } 22 23 } 24 class Men implements Flyable,Attack{ 25 26 @Override 27 public void fly() { 28 // TODO Auto-generated method stub 29 System.out.println("跳起来。飞"); 30 } 31 32 @Override 33 public void hit() { 34 // TODO Auto-generated method stub 35 System.out.println("拳头打人"); 36 } 37 38 } 39 class Stone implements Flyable,Attack{ 40 41 @Override 42 public void fly() { 43 // TODO Auto-generated method stub 44 System.out.println("被人扔出去飞"); 45 } 46 47 @Override 48 public void hit() { 49 // TODO Auto-generated method stub 50 System.out.println(" 拿起石头攻击"); 51 } 52 53 }
1 package cn.bjsxt.oop.testInterface; 2 /** 3 * 接口可以多继承 4 * @author Administrator 5 *实现多继承接口 要实际所有继承的接口 6 */ 7 public interface InterfaceA { 8 void aaa(); 9 } 10 interface InterfaceB{ 11 void bbb(); 12 } 13 interface InterfaceC extends InterfaceA,InterfaceB{ 14 void ccc(); 15 } 16 class TestClass implements InterfaceC{ 17 18 @Override 19 public void aaa() { 20 // TODO Auto-generated method stub 21 22 } 23 24 @Override 25 public void bbb() { 26 // TODO Auto-generated method stub 27 28 } 29 30 @Override 31 public void ccc() { 32 // TODO Auto-generated method stub 33 34 } 35 36 }
转载于:https://www.cnblogs.com/PoeticalJustice/p/7623790.html
接口(interface)相关推荐
- Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)
1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...
- php中的抽象类(abstract class)和接口(interface)
一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...
- 接口(Interface)的深入理解
接口(Interface)的深入理解 一:接口是规范(不展开) 二:接口可以看成是一个特殊的类 1: 接口可以定义"接口类型变量",就好像类可以定义类类型的变量(或者说是引用类型变 ...
- Java接口interface
Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值 ...
- Java的类(class)、包(package)和接口(interface)
在Java中,类(class)是用来代表对象的基本单元.对象(object)可以是现实世界中的任何一个实体,它具有若干区别于其它对象的属性和操作.而类则通过为对象定义属性和操作来概括一类实体.它封装了 ...
- Java接口(interface)的概念及使用
在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加"抽象". 接口使用 interface 关键字来声 ...
- java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)
1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...
- 小论接口(interface)和抽象类(abstract class)的区别
接口是类实现了某一种功能的体现,这种体现往往是对外的,所以重载接口的函数一定是public的 可是初学OO编程的时候,往往会碰到一个问题,既然有接口(interface)的存在,为什么还要有抽象类(a ...
- go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- Java 中接口 interface 实例介绍
接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值 ...
最新文章
- 33.搜索旋转排序数组
- Gradle 10分钟上手指南
- centos 服务详解
- restclient发送json_怎么使用restclient来发送post请求参数
- Unity3D与Leap motion连接学习记录
- ConcurrentHashMap的源码分析-CounterCells初始化图解
- mysql jdbc 占位符_JDBC中占位符报错是什么鬼啊
- android 百度地图开发 怎么减小包的大小,最新的百度地图Android开发包中,如何隐藏右下角的放大缩小控件...
- visualmap超过范围改变颜色_高动态范围(High-Dynamic Range,简称HDR)
- python面试题之你如何管理不同版本的代码?
- 卡开启中断_上网卡顿、网络连接中断……9012年了PC上网还只靠宽带?
- 使用Kibana画图展示Nginx日志报表
- IOS调试—断点调试以及动态输出
- 别点进来! Linux 与 Mac 下有趣但毫无用处的命令(转载)
- 实战python网络爬虫黄永祥_《实战Python网络爬虫》- 感想
- 自动驾驶技术(3)- 高精度地图解决自动驾驶的功能痛点
- ubuntu 安装go语言编译器 liteide
- wirehark数据分析与取证attack.pcap
- DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
- 操作系统简介及编程语言
热门文章
- 激活当前视图菜单高亮呈现 V2.0
- AngularJs 取消对 html 字符串标签转义
- 数据系列:如何在Windows Azure虚拟机上设置SQL Server
- Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:命令选项...
- Mac zsh not found jupyter notebook
- arcgisserver修改服务器地址,ArcGIS for Server默认端口6080修改
- linux运维 对比 网络_linux运维、架构之路-网络基础
- 入门Python数据分析最好的实战项目
- 了解下RDF 容器元素
- 为什么异步Python比同步Python快?