东南博职业技术学院
课 时 授 课 计 划 编号:Win001
班级
班
班
班
日期
第8教学周
课
题
接口和包
目的
要求
要求学生掌握抽象类的概念及用途,接口的概念及实现,包的概念及引用
重
点
接口的实现和包的应用
难
点
抽象类的应用和接口的实现
教
法
讲 授
动手操作
教 具
教材及课外资料
无课外资料
课时
分配
组织教学
0
复习旧课
上机练习
讲授新课
2
小结巩固
1
布置作业
上机练习
其他
1
教
学
内
容
及
进
程
1、 抽象类
抽象类的定义及实现
2、 接口
接口的概念及实现
3、 包
包的定义及引用
课外
作业
课后
作业
第08章 接口和包
8.1 抽象类和
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
Java中有一种专供子类来继承的类,这个类就是抽象类。
抽象方法:只有方法说明,没有方法体的方法称为抽象方法。
抽象类通常包括一个或多个抽象方法,抽象类的子类必须实现其父类定义的每一个抽象方法,除非该子类也是抽象类。
定义抽象类是因为属于同一类的多个子类,在实现某些方法时,会采用不同的实现方式,这时就要采用不同的方法体来定义。
8.1.1 定义抽象类
抽象类定义以abstract关键字开头:
abstract class 抽象类名
{
成员变量;
方法();
//定义一般的抽象方法
abstract 类型 抽象方法名();
//定义抽象方法
}
(1)抽象类可以包含一般方法,也可以包含抽象方法;对于抽象方法不用完成其代码实现,而在派生的子类中实现所有抽象方法;
(2)Java引入抽象类来描述对象的一般状态和行为,再由各个子类去分别实现这些状态和行为,以适应对象的多样性。
子类继承抽象类:
public class 子类 extends 抽象类名
{
//……省略
public 类型 抽象方法名()
//实现抽象方法
{
//…代码省略
}
}
(1)子类实现抽象方法时,一定要将该方法修饰为public;
(2)子类必须实现抽象类的所有抽象方法。
(3)抽象类的子类实现单继承;
8.1.1 定义抽象类—举例
例1:见P105页例题;
例2:由于圆和矩形求面积和周长的公式都不一样,所以我们
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
一个抽象类ShapeTest中有2个抽象方法mianJi()和zhouChang();该类的2个子类Circle和Rectange分别实现父类的抽象方法用来求各自的面积和周长。
abstract class ShapeTest
//抽象类
{
public final double PI=3.14159;
abstract double mianJi();
//抽象方法,求面积
abstract double zhouChang();
//抽象方法,求周长
}
class Circle extends ShapeTest
//继承抽象方法
{
private double radius;
//半径
public Circle(double radius)
{
this.radius=radius;
}
public double mianJi()
//实现抽象方法
{
return PI*radius*radius;
}
public double zhouChang()
//实现抽象方法
{
return 2*PI*radius;
}
}
class Rectange extends ShapeTest
//继承抽象方法
{
private double chang;
//长
private double kuang;
//宽
public Rectange(double chang,double kuang)
{
this.chang=chang;
this.kuang=kuang; }
public double mianJi()
//实现抽象方法
{
return chang*kuang;
}
public double zhouChang()
//实现抽象方法
{
return 2*(chang+kuang);
}
}
class AbstractTest
{
public static void main(String[] args)
{
Circle cir=new Circle(5.0);
System.out.println("圆面积="+cir.mianJi()+"\t圆周长="+cir.zhouChang());
Rectange rect=new Rectange(4.5,2.0);
System.out.println("矩形面积="+rect.mianJi()+"\t矩形周长="+rect.zhouChang());
}
}
8.2 接口
接口(关键字为interface,译为接口、界面),它是用来实现类间多重继承的结构模式。
接口实际上是一个特殊的类,定义形式为:
[权限] interface 接口名 [extends 父接口1,父接口2,…]
{
…//接口体程序
}
接口是特殊类,只能由常量和抽象方法组成;
接口的特点:
(1)接口可以定义多继承,用extends继承多个父接口;
(2)接口中不允许定义变量,只允许使用final static定义变量;
(3)接口中的方法只能被声明为public和abstract,如果不声明访问权限,则默认为public abstract;
(4)接口中的方法都是使用abstract修饰,即都没有方法体;
接口的实现:
class 类名 implements 接口1,接口2…..
{
//实现所有抽象方法
}
8.2 包
包是一组相关类和接口的集合,Java语言利用包将类进行分类,将相关类放在一个包中进行有效管理。如java.awt.*、java.io.*、java.net.*等。
用package关键字来将某段代码归入某个包:
package 包名称;
如:
package myPack;
public class classname
{
……
}
用import关键字来将某段代码引入程序文件中:
import 包名称.类名;
如:
import myPack.classname;
public class TestPack
{
……
}