在之前的文章我们介绍了一下 Java 中的抽象类和抽象方法,本章我们来看一下 Java 中的接口。

在日常生活中,我们会接触到很多类似接口的问题,比如 USB 接口,我们在电脑上插鼠标,键盘,U盘的时候不用去考虑它到底能不能插进去,只要型号对了就肯定能插进去,接口就相当于一个标准,你要想把鼠标插到我的电脑上,在出厂时就必须遵守该电脑定义的接口标准。

在 Java 中同样有接口的概念,当然也会有接口的定义标准。

  1、有 interface 定义;

  2、只能包含常量和抽象方法;

  3、接口不能被实例化;

  4、接口是需要被实现/继承的,实现类/子类:必须重写接口中的所有抽象类;

  5、一个类可以实现多个接口,用逗号隔开,若又继承又实现,应先继承后实现;

  6、接口可以继承接口;

我们先来看前三条,代码如下:

 interface Inter {
public static final int NUM = 5;
public abstract void test1(); double PI = 31.415926; // 默认 public static final
void test2(); // 默认 public abstract int num; // 编译错误 没有初始化
public void test3() {} // 编译错误 只能是抽象方法
}

接下来我们看一下第4条:

 interface Inter1{
void a();// 默认 public abstract
void b();
void c();
}
class Aoo implements Inter1{ // 编译错误,所有抽象方法都必须重写
void a(){} // 编译错误,父类默认 public,子类类型不能小于父类
public void b(){}
}

我们再来看一下第5条:

 interface Inter1{
void a();
} interface Inter2{
void b();
} abstract class Foo{
abstract void c();
} class Aoo implements Inter1, Inter2{
public void a(){}
public void b(){}
} class Boo extends Foo implements Inter1, Inter2{
public void a(){}
public void b(){}
void c(){}
}

最后我们看一下第6条:

 interface Inter1{
void a();
} interface Inter2 extends Inter1{
void b();
} class Aoo implements Inter2{ // 抽象方法必须都得重写,包括接口继承接口的
public void a(){}
public void b(){}
}

Java 从入门到进阶之路(十四)的更多相关文章

  1. Java 从入门到进阶之路(四)

    之前的文章我们介绍了 Java 的运算符和表达式,本章我们来看一下 Java 的循环结构. 循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性进行. 循环的 ...

  2. Java 从入门到进阶之路(十)

    之前的文章我们介绍了一下 Java 中的引用型数组类型,接下来我们再来看一下 Java 中的继承. 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继 ...

  3. Java 从入门到进阶之路(十二)

    在之前的文章我们介绍了一下 Java 类的重写及与重载的区别,本章我们来看一下 Java 类的 private,static,final. 我们在之前引入 Java 类概念的时候是通过商场收银台来引入 ...

  4. Java 从入门到进阶之路(十五)

    在之前的文章我们介绍了一下 Java 中的接口,本章我们来看一下 Java 中类的多态. 在日常生活中,很多意思并不是我们想要的意思,如下: 1.领导:“你这是什么意思?” 小明:“没什么意思,意思意 ...

  5. Java 从入门到进阶之路(十六)

    在之前的文章我们介绍了一下 Java 中类的多态,本章我们来看一下 Java 中类的内部类. 在 Java 中,内部类分为成员内部类和匿名内部类. 我们先来看一下成员内部类: 1.类中套类,外面的叫外 ...

  6. Java 从入门到进阶之路(十九)

    在之前的文章我们介绍了一下 Java 中的Object,本章我们来看一下 Java 中的包装类. 在 Java 中有八个基本类型:byte,short,int,long,float,double,ch ...

  7. Java 从入门到进阶之路(二十)

    在之前的文章我们介绍了一下 Java 中的包装类,本章我们来看一下 Java 中的日期操作. 在我们日常编程中,日期使我们非常常用的一个操作,比如读写日期,输出日志等,那接下来我们就看一下 Java ...

  8. Java 从入门到进阶之路(二十二)

    在之前的文章我们介绍了一下 Java 中的  集合框架中的Collection 中的一些常用方法,本章我们来看一下 Java 集合框架中的Collection 的迭代器 Iterator. 当我们创建 ...

  9. Java 从入门到进阶之路(十八)

    在之前的文章我们介绍了一下 Java 中的正则表达式,本章我们来看一下 Java 中的 Object. 在日常生活中,任何事物我们都可以看做是一个对象,在编程中是同样的道理,在 Java 编程中其实更 ...

随机推荐

  1. Spring与Redis整合(spring-data-redis)

    maven依赖 <properties> <!-- redis 版本 --> <redis.version>2.9.0</redis.version> ...

  2. 记一次net/net core delete 方法报404 解决方案

    今天一个net core的delete方法 执行的时候 报404 网上查阅资料后发现是IIS 默认只允许get/post方法接入 网上查找资料后 在web.config添加如下代码: 意为移除WebD ...

  3. Tab Bar Control 的封装和切换

    见视频0414 思路: 1.删除系统自带的TabBar.2.添加UIView,做成自定义的TabBar,覆盖原来的TabBar.3.添加对于的button和切换事件.

  4. P2415 集合求和(一道洛谷好题鸭)(虽然可以水过,但有必研究DP)

    此题坑点: 结果必须要用long long存,int存不下 如果想要像cout<<sum*pow(2,num-1)这样在输出时计算会错:long long在计算过程被隐式转换成了doubl ...

  5. Error creating bean with name 'entityManagerFactory' defined in class path resource解决方案

    ​ 项目是集成了Spring Boot和Spring Data,然后昨天简单Jpa和Spring Boot配置完成,开始进行公司项目的重构,然后出现了这个问题.当时是在网上找了好久.后来发现时java ...

  6. 第三章 学习Shader所需的数学基础(5)

    1. Unity Shader的内置变量(数学篇) 使用Unity写shader的一个好处在于,它提供了很多内置参数,这使得我们不在需要自己手动算一些值.本文给出Unity内置的用于空间变换和摄像机以 ...

  7. 在modelarts上部署mask-rcnn模型

    最近老山完成了对mask-rcnn在modelarts上的部署,部署模型来自于这个项目.部署的过程大体和我的上篇文章使用modelarts部署bert命名实体识别模型相似,许多细节也不在赘述.这篇文章 ...

  8. Python-TCP客户端程序开发

    TCP客户端,需要与服务端建立连接,连接建立成功后才可以进行数据的传输. # 1.导入模块 import socket if __name__ == '__main__': # 2.创建套接字对象 t ...

  9. EasyUI整合SpringBoot,Spring Data对数据的分页操作

    EasyUI的用法可以看中文官网,看插件是如何使用的 EasyUI中文官网 前端页面 <table id="dg" title="My Users" cl ...

  10. 度及拓扑图的使用-UESTC1958学霸周选课

    学霸周选课 Time Limit: 1000 MS     Memory Limit: 128 MB Submit Status 众所周知周大爷不仅编程了得,专业课成绩更是名列前茅,恰巧又到了选课的季 ...