面向对象-教案(第18讲) .doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE5

《面向对象程序设计》教案

第18讲

教学对象

计算机科学技术专业

授课内容

6.8抽象类

6.9对象转换

6.10理解多态性

课程标准

教学目标

(一)知识目标

1.掌握抽象类的使用

2.理解抽象类的概念

3.掌握对象转换的使用

4.理解多态的概念

(二)能力目标

1.能够应用类、对象、封装、继承、多态等知识编写应用程序

2.能够掌握面向对象理论与方法,进行创新性的编程设计

教学方法

采用讲授法、演示法、讨论法、案例教学。

学时及分配(第1学时50分钟)

课堂讲授30分钟

课堂练习20分钟

6.8抽象类

学时及分配(第2学时50分钟)

课堂讲授30分钟

课堂练习20分钟

6.9对象转换

6.10理解多态性

知识点分析

重点:

抽象类的使用、对象转换与多态性

难点:

对象转换与多态性

教学过程设计

内容

方式

问题导入

假设要开发一个图形绘制系统,需要定义圆(Circle)类、矩形(Rectangle)类和三角形(Triangle)类等,这些类都需要定义求周长和面积的方法,这些方法对不同的图形有不同的实现。这时就可以设计一个更一般的类,比如几何形状(Shape)类,在该类中定义求周长和面积的方法。由于Shape不是一个具体的形状,这些方法就不能实现,因此要定义为抽象方法(abstractmethod)。

内容要点

6.8抽象类

定义抽象方法需要在方法前加上abstract修饰符。抽象方法只有方法的声明,没有方法的实现。包含抽象方法的类必须定义为抽象类,定义抽象类需要的类前加上abstract修饰符。

下面定义的Shape类即为抽象类,其中定义了两个抽象方法。

【程序6-11】Shape.java

packagecom.boda.xy;

publicabstractclassShape{

Stringname;

抽象类可以定义构造方法publicShape(){}

抽象类可以定义构造方法

publicShape(Stringname){

=name;

}

两个抽象方法publicabstractdoublegetArea();

两个抽象方法

publicabstractdoublegetPerimeter();

}

在抽象类中可以定义构造方法,这些构造方法可以在子类的构造方法中调用。尽管在抽象类中可以定义构造方法,但抽象类不能被实例化,即不能用new生成抽象类的对象,如下列语句将会产生编译错误:

Shapesh=newShape();

在抽象类中可以定义非抽象的方法。可以创建抽象类的子类,抽象类的子类还可以是抽象类。只有非抽象的子类才能使用new创建该类的对象。抽象类中可以没有抽象方法,但仍然需要被子类继承,才能实例化。

下面程序的Circle类继承了Shape类并实现了getArea()和getPerimeter()两个抽象方法。

【程序6-12】Circle.java

packagecom.boda.xy;

publicclassCircleextendsShape{

privatedoubleradius;

publicCircle(){

this(0.0);

}

publicCircle(doubleradius){

super(圆);//调用父类的构造方法

this.radius=radius;

}

publicvoidsetRadius(doubleradius){

this.radius=radius;

}

publicdoublegetRadius(){

returnradius;

}

实现父类的抽象方法@Override

实现父类的抽象方法

publicdoublegetPerimeter(){

return2*Math.PI*radius;

}

实现父类的抽象方法@Override

实现父类的抽象方法

publicdoublegetArea(){

returnMath.PI

文档评论(0)

弹弹 + 关注
实名认证
内容提供者

人力资源管理师、教师资格证持证人

该用户很懒,什么也没介绍

版权声明书
用户编号:6152114224000010
领域认证该用户于2024年03月13日上传了人力资源管理师、教师资格证

1亿VIP精品文档

相关文档