【Java百炼成神】魂尊篇——面向对象(接口)

简介: 【Java百炼成神】魂尊篇——面向对象(接口)

1.引言


在现实生活中,处处需要制定规范:

例如:电脑插头设计时,必须有规范,否则无法正常和插排连接

微信图片_20220530123058.png

例如:手机设计时,需要有规范

否则手机没法正常打电话、发短信微信图片_20220530123111.png

Java 世界中也有规范,为了学习 Java 中如何制定规范,我们就需要学习接口知识  

     

2.概念&入门


2.1概念


官方定义:接口是一系列方法的声明,是一些方法特征的集合

接口:用来定义规范。

 

以制造手机为例:微信图片_20220530123308.png

在 Java 中,接口 = 规范


2.2入门:定义接口


需求说明:


公司提出手机(Phone)的设计规范:手机可以打电话(call),可以发信息(sendMessage)


请将手机的设计规范定义为 Java 中的接口

知识讲解:


1、 接口定义时需要使用 interface 关键字


2、 接口定义格式为:  


public interface 接口名 { 
返回值类型 方法名 1(参数列表); 
}

注:接口中非静态成员方法都无需方法体

代码实现: 微信图片_20220530123416.png

微信图片_20220530123433.png微信图片_20220530123439.png

接口定义完毕,就制定了一个 Phone 接口,为其他手机类的定义,制定了规范


3.进阶:实现接口


因为接口无法直接创建对象,

所以我们必须根据接口来定义普通 Java 类,使用普通 Java 类创建对象。微信图片_20220530123519.png

根据接口定义普通 Java 类,重写接口中方法的过程,我们称为:实现接口


实现接口的普通 Java 类,我们也叫做实现类


格式:

public class 类名 implements 接口名 { 
 重写接口中的方法 
 }


//


需求:


请在公司提出的手机(Phone)的设计规范的基础上,定义苹果手机类(IPhone),


将接口中提出的两个功能,真正实现出效果:


打电话(call):控制台展示“打电话”


发信息(sendMessage):控制台展示“发短信”


最终在测试类中,创建一个苹果手机类对象,分别调用两个方法


分析:


1、定义实现类

微信图片_20220530123613.png

2、通过实现类,创建对象

实现:

Iphone 类:(实现接口)

public class IPhone implements Phone { 
 @Override 
 public void call() { 
 System.out.println("打电话"); 
 } 
 @Override 
 public void sendMessages() { 
 System.out.println("发短信"); 
 } 
}

Demo1 类:

public static void main(String[] args) { 
 IPhone ip = new IPhone(); 
 ip.call(); 
 ip.sendMessages(); 
}

总结:实现接口就是:Iphone 类将接口所有方法逐一重写,从而真正实现了每个方法的功能。


4.IDEA快捷实现接口


IDEA 可以帮我们快捷定义某个接口的实现类: 微信图片_20220530123622.png微信图片_20220530123743.png微信图片_20220530123748.png微信图片_20220530123753.png

5.接口强化练习


5.1练习1:管理班级接口


定义管理班级接口(Management):


接口中定义两个方法:作业检查(check)、考试(exam)


定义班主任(ClassTeacher)类,让班主任具备管理班级的功能。


定义讲师(Lecturer)类,让讲师具备管理班级的功能。

注意:实现了哪个接口,我们就认为:类就具备了哪些功能。


例如:


1、 实现了手机接口,类就具备了手机功能


2、 实现了飞行接口,类就具备了飞行功能


3、 实现了计算接口,类就具备了计算功能。


5.2练习2:孩子继承父亲 孩子是学生 父亲不是学生


现有如下类或接口:父亲(Father),孩子(Child),学生(Student)


他们之间的关系为:


孩子继承了父亲,都能跑步锻炼


孩子是学生,有学习功能


父亲不是学生,没有学习功能

学习(study),跑步(run)


6.接口的注意事项


  • 接口中不可以定义构造方法,更无法直接创建对象
  • 接口中不可以定义普通成员变量,只能定义常量。接口中的常量默认被 public static final 修饰  微信图片_20220530124032.png
  • Java 支持一个类实现多个接口
  • 微信图片_20220530124040.png
  • 接口之间也可以使用继承,而且一个接口可以有多个父接口


  • 微信图片_20220530124045.png
  • 接口中可以定义 static 方法,static 方法必须编写方法体
  • 微信图片_20220530124050.png
  • 一个类既可以继承父类,同时也可以实现接口,继承和实现之间没有相互的干扰

 

相关文章
|
28天前
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
1月前
|
消息中间件 缓存 前端开发
从资损百万到零事故:Java 接口幂等设计的艺术与实践
在分布式系统中,重复请求常引发严重资损,如支付双扣、库存超卖等问题,其根源在于接口缺乏幂等性设计。本文通过真实案例揭示幂等性的重要性,并详解8种主流解决方案,涵盖唯一请求ID、乐观锁、悲观锁、状态机等,帮助开发者构建稳定系统,保障业务一致性。无论你是架构师还是开发工程师,都能从中获得实战指导,有效规避重复调用带来的风险。
128 0
|
28天前
|
存储 缓存 安全
Java集合框架(二):Set接口与哈希表原理
本文深入解析Java中Set集合的工作原理及其实现机制,涵盖HashSet、LinkedHashSet和TreeSet三大实现类。从Set接口的特性出发,对比List理解去重机制,并详解哈希表原理、hashCode与equals方法的作用。进一步剖析HashSet的底层HashMap实现、LinkedHashSet的双向链表维护顺序特性,以及TreeSet基于红黑树的排序功能。文章还包含性能对比、自定义对象去重、集合运算实战和线程安全方案,帮助读者全面掌握Set的应用与选择策略。
139 23
|
1月前
|
安全 Java 开发者
Java集合框架:详解Deque接口的栈操作方法全集
理解和掌握这些方法对于实现像浏览器后退功能这样的栈操作来说至关重要,它们能够帮助开发者编写既高效又稳定的应用程序。此外,在多线程环境中想保证线程安全,可以考虑使用ConcurrentLinkedDeque,它是Deque的线程安全版本,尽管它并未直接实现栈操作的方法,但是Deque的接口方法可以相对应地使用。
115 12
|
5天前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
29 0
|
28天前
|
存储 安全 Java
Java集合框架(一):List接口及其实现类剖析
本文深入解析Java中List集合的实现原理,涵盖ArrayList的动态数组机制、LinkedList的链表结构、Vector与Stack的线程安全性及其不推荐使用的原因,对比了不同实现的性能与适用场景,帮助开发者根据实际需求选择合适的List实现。
|
3月前
|
SQL 人工智能 Java
阿里云百炼开源面向 Java 开发者的 NL2SQL 智能体框架
Spring-ai-alibaba-nl2sql 是析言 GBI 产品在数据问答领域的一次重要开源尝试,专注于 NL2SQL 场景下的核心能力开放。
994 48
|
1月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。

热门文章

最新文章