-
java 接口(基础)
java 接口使用(基础)
接口:接口就是一种公共的规范标准,只要符合规范标准,就可以大家都通用。接口是多个类的公共规范。接口是一种引用数据类型,最重要的内容就是其中的抽象方法。
基本定义格式:
public interface 接口名称{
//接口内容
}对于不同的java版本,接口里可以存放的内容也不相同,一个接口内容,最多可以存放5块内容:即常量,抽象方法,默认方法,静态方法,私有方法。
接口的抽象方法定义:
在任何的java版本中,接口都能抽象定义方法。
格式:public abstract 返回值类型 方法名(参数列表);
public interface MyInterfaceAbstract {
//这是一个抽象方法定义
public abstract void methods1();
//选择性的去掉前面两个关键字也行
void methods2();
注意事项:在接口当中的抽象方法,修饰符必须有两个固定的关键字public和abstract(但是这两个关键字可以选择性的省略)。接口的抽象方法定义中,方法的三要素可以随意定义。
接口的抽象方法使用:
-
接口不能直接使用,必须要有一个“实现类来实现这个接口
格式:public class 实现类名称 implements 接口名称{
//内容
}
- 接口的实现类必须覆盖重写接口中的所有方法。覆盖重写:去掉abstract关键字,加上方法体大括号。
3.创建实现类的对象,进行使用
//接口 //这是一个抽象方法定义 public abstract void methods1(); //选择性的去掉前面两个关键字也行 void methods2(); //实现类 public class MyInterfaceImp implements MyInterfaceAbstract{ @Override public void methods1() { System.out.println("这是第一个方法体"); } @Override public void methods2() { System.out.println("这是第二个方法体"); } } //写一个调用类 public class DemoMyInterface { public static void main(String[] args) { MyInterfaceImp imp = new MyInterfaceImp(); imp.methods1(); imp.methods2();
接口的默认方法定义:
存在:当我们在接口中的抽象方法,在实现类中没有被覆盖重写时,我们可以将抽象方法改写成默认方法,而且可以存在方法体。这时,就不需要在实现类中覆盖重写方法体。我们的默认方法可以通过接口实现类对象,直接调用。且可以被多个实现类覆盖重写调用,
格式:public default 返回值类型 方法名称(参数列表)
{
//方法体
}
//再写一个方法,这时我们的实现类会报错,因为没有将接口中的所有方法重写 // public abstract void methods3(); //改进,可以将methods3改成默认方法 public default void methods3(){ System.out.println("这是第三个方法"); } } //可以在实现类中调用第三个方法 imp.methods3();
出处:https://www.cnblogs.com/kuangsun125/p/15176476.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比