Java语言第7章 接口和抽象
45页1、7.1 接口 7.2 克隆 7.3 内部类 7.4 抽象行为 7.5 抽象类 7.6 抽象与接口的区别,第七章 接口和抽象,7.1 接口,什么是接口呢?在阐述接口的概念以前,我们先举个例子,在日常生活中,我们都会用到插头及插座,一个插座无论是两相的还是三相的,也无论生产插座的厂家是哪里的,都会执行相同的规范,因此当用户购买到插座以后都可以使用。在这里我们关心的是制造插座的规范,并不关心这个插座是用来接电视机或台灯;作为生产插座的厂家关心的也只是制造这个插座过程中所执行的规范,他们只要按照规范生产出来的插座,用户就一定可以正常使用。,7.1 接口,接口本身就类似于上例中的制定插座规范的部门,在接口中声明的行为规范(体现在编程语言中就是方法的声明,只有声明而没有方法体),也就是生产厂家所执行的生产规范,生产厂家对应的就是类,也就是说接口是通过类来实现的。这也正如生产插座的厂家要执行工业部关于插座的生产规范,类也要执行接口中定义的行为规范,也就是方法。,7.1 接口,接口是只说明类应该做什么,但并不指定如何做的方法,一个类可以实现一个或多个接口。在这里再强调一次,接口只是声明应该做,但不关心
2、如何做。,7.1 接口,接口在Java中是用关键字interface来声明的。所以说接口并不是一个类,而是对符合接口需求的类的一套规范。 public interface Person String getName(); String getSex(); String getBirthday(); String getAddress(); void setAddress(String strAddress); ,7.1 接口,接口标识符的声明与类标识符的声明一致,接口开头的第一个字符习惯上也是大写。 仔细观察这段代码会发现,在方法的声明中,我们没有声明访问控制符,这是因为接口都是public型的,接口中的方法自动的也全部都是public型的,所以不需要再在方法声明中使用public关键字。试想,如果把接口声明为其他的访问控制符,那根本没有任何的意义,所以接口只能是public型的。,7.1 接口,实现一个接口是指类实现一个接口,基本上类似于类的继承,但接口的实现是通过关键字implements来实现的。 实现接口的类,必须要实现接口中的所有方法。,7.1 接口,观察我们所写的代码,在S
3、tudent类中功能与接口中声明的方法一致,我们做了一些修改,与以前的Sutdent类有所不同了,并且完成了方法,以明确告诉程序如何操作,如getName方法,在接口中只是声明为返回一个字符串,而在实现接口的类(Student类)中我们却明确告诉返回的是学生的姓名。如果是工人类实现了Person接口,那就应该返回工人的姓名。 现在我们再把getName方法修改一下,使之还原到原来的样子,代码如下: public String getStudentName() return strName; ,7.1 接口,现在我们再把在类实现中实现了接口的方法修改一下,将访问控制符由public改为别的控制符,代码如下: protected String getSex() return strSex; ,7.1 接口,由此我们可以总结出以下三点: 声明类需要实现指定的接口; 提供接口中所有方法的定义; 实现类中在接口中定义的方法必须全部都是public的。,7.1 接口,在前面我们提到过,一个类可以实现多个接口,正如一个工厂可以生产多种产品,执行不同的生产规范一样的道理。 如果一个类实现多个接口,也是
4、用关键字implements来实现的,多个接口之间用逗号“,”来分隔。 我们就以一个具体的例子来探讨一下接口的多重实现,并学习如何利用Java公开库中的接口。假设一个班级中有50个学生,我们想实现学生间按照学号进行排序。 在Arrays类中有一个静态的方法: public static void sort(Object a),7.1 接口,我们再看一下Comparable接口的API文档,可以看到在接口中只有一个方法的声明,那就是 public int compareTo(Object o),7.1 接口,那么Comparable接口看起来同下面的代码类似: public interface Comparable int compareTo(Object other); ,7.1 接口,我们先让学生类实现Person接口的同时再实现Comparable接口,那在学生类中应该再追加一个CompareTo方法。代码如下: class Student implements Person, Comparable public int compareTo(Object other) ,7.1 接
《Java语言第7章 接口和抽象》由会员梦**分享,可在线阅读,更多相关《Java语言第7章 接口和抽象》请在金锄头文库上搜索。
数控加工工艺与编程——教学大纲.doc
Linux 应用基础教程--CH04_包管理与系统更新
Java语言第12章 图形用户界面设计
Java语言第3章 数据类型
C#程序设计实用教程第08章
《项目论证与评估》第十一章课件
哈里德课件 (23)
哈里德课件 (21)
高等数学6.2 定积分的物理应用
大学物理学第11章--电磁振荡 电磁波
大学物理学第7章--恒定电流的稳恒磁场
大学物理学第1章--质点运动学
Java语言第7章 接口和抽象
《项目论证与评估》第九章课件
《项目论证与评估》第一章课将
哈里德课件 (15)
哈里德课件 (1)
高等数学5.4 广义积分
Linux 应用基础教程--CH00_课前概说
C#程序设计实用教程第09章
2024-04-11 25页
2024-04-11 37页
2024-04-11 28页
2024-04-11 31页
2024-04-11 36页
2024-04-11 29页
2024-04-11 22页
2024-04-11 27页
2024-04-11 34页
2024-04-11 32页