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)相关推荐

  1. Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)

    1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...

  2. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  3. 接口(Interface)的深入理解

    接口(Interface)的深入理解 一:接口是规范(不展开) 二:接口可以看成是一个特殊的类 1: 接口可以定义"接口类型变量",就好像类可以定义类类型的变量(或者说是引用类型变 ...

  4. Java接口interface

    Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值 ...

  5. Java的类(class)、包(package)和接口(interface)

    在Java中,类(class)是用来代表对象的基本单元.对象(object)可以是现实世界中的任何一个实体,它具有若干区别于其它对象的属性和操作.而类则通过为对象定义属性和操作来概括一类实体.它封装了 ...

  6. Java接口(interface)的概念及使用

    在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加"抽象". 接口使用 interface 关键字来声 ...

  7. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  8. 小论接口(interface)和抽象类(abstract class)的区别

    接口是类实现了某一种功能的体现,这种体现往往是对外的,所以重载接口的函数一定是public的 可是初学OO编程的时候,往往会碰到一个问题,既然有接口(interface)的存在,为什么还要有抽象类(a ...

  9. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  10. Java 中接口 interface 实例介绍

    接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值 ...

最新文章

  1. 33.搜索旋转排序数组
  2. Gradle 10分钟上手指南
  3. centos 服务详解
  4. restclient发送json_怎么使用restclient来发送post请求参数
  5. Unity3D与Leap motion连接学习记录
  6. ConcurrentHashMap的源码分析-CounterCells初始化图解
  7. mysql jdbc 占位符_JDBC中占位符报错是什么鬼啊
  8. android 百度地图开发 怎么减小包的大小,最新的百度地图Android开发包中,如何隐藏右下角的放大缩小控件...
  9. visualmap超过范围改变颜色_高动态范围(High-Dynamic Range,简称HDR)
  10. python面试题之你如何管理不同版本的代码?
  11. 卡开启中断_上网卡顿、网络连接中断……9012年了PC上网还只靠宽带?
  12. 使用Kibana画图展示Nginx日志报表
  13. IOS调试—断点调试以及动态输出
  14. 别点进来! Linux 与 Mac 下有趣但毫无用处的命令(转载)
  15. 实战python网络爬虫黄永祥_《实战Python网络爬虫》- 感想
  16. 自动驾驶技术(3)- 高精度地图解决自动驾驶的功能痛点
  17. ubuntu 安装go语言编译器 liteide
  18. wirehark数据分析与取证attack.pcap
  19. DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
  20. 操作系统简介及编程语言

热门文章

  1. 激活当前视图菜单高亮呈现 V2.0
  2. AngularJs 取消对 html 字符串标签转义
  3. 数据系列:如何在Windows Azure虚拟机上设置SQL Server
  4. Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:命令选项...
  5. Mac zsh not found jupyter notebook
  6. arcgisserver修改服务器地址,ArcGIS for Server默认端口6080修改
  7. linux运维 对比 网络_linux运维、架构之路-网络基础
  8. 入门Python数据分析最好的实战项目
  9. 了解下RDF 容器元素
  10. 为什么异步Python比同步Python快?