面向对象设计思想之一 抽象.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2006-10-11 重庆正大软件职业技术学院精品课程 第3章 面向对象设计思想 复习 类的多态性 方法的重载 方法的重写 3.1 抽象 主要任务 1.创建一个抽象基类Animal,它包含一个abstract的sound()方法;派生一个子类Dog,实现父类抽象方法sound();创建子类Dog对象,然后调用它的sound()方法。 2.创建一个final类Test,定义两个final成员变量A和B,在构造方法中,初始化A和B。验证Test不能派生子类;创建Test对象,验证不能修改成员变量A和B。修改Test为非final类;增加final修饰的成员方法print(),打印成员变量A和B的值;基于Test生成派生类SubTest,重写方法print();验证final修饰的方法不能被重写。 主要内容 抽象类的概念 定义和使用抽象类 final修饰符的使用 抽象类 在面向对象的概念中,所有对象都是通过类来描述的,但是并不是所有的类都是用来描述对象的。 实际上,我们还会将一系列看上去不同,但本质相同的具体对象进行抽象并定义成一种类。这种类虽然不能包含足够的信息来描述一个具体的对象,但是却可以将这类对象的本质加以归纳,从而制定出一种协议,便于这类对象的管理,那么这个过程就称为类的抽象。这样的类就是抽象类。 抽象类 比如:圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,而形状就是一个抽象概念,它并不对应对象。 在java语言中如何定义一个抽象类呢? 抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类。 抽象类只关心他的子类具有某种功能,并不关心功能的具体实现,功能的具体行为由子类负责实现。 抽象类 抽象类定义的格式是: 抽象类 抽象方法 通过抽象,可以得到某一类对象的共有方法,这些方法由于没有放到具体的对象中,因而不能表现出具体的内容,也就是没有方法体。 在Java中,通常情况下会将不含方法体的方法声明为抽象方法(abstract method) 抽象类 抽象方法(abstract method)的格式是: 抽象类 抽象类的使用和一般类有很大的区别,这表现在以下几个方面: 1.抽象类不能用new关键字实例化对象,只能被继承和重写其抽象方法 2.在抽象类中可以有抽象方法,也可以没有抽象方法,当然也可以声明自己的成员变量 抽象类 3.不能用abstract修饰构造方法、静态方法和私有(private)方法,abstract方法必须被重写。 4.抽象方法只需声明,而无需实现;含有抽象方法的类必须被声明为抽象类 5.抽象类的子类必须实现抽象类中所有的抽象方法,否则这个子类也是抽象类 练习: P67例3-1 计算底面半径为2高为3的圆柱体体积和长、宽、高分别为3、2、4的长方体体积。 共有行为:计算体积 完成任务一 完成教材P71 3.1节中任务 课堂总结 抽象类的概念 定义和使用抽象类 课后练习 教材课后习题 作业 P83 3、操作题的(1)题 练习: 计算现半径为10的圆和长、宽分别为15、9的长方体面积与周长。 要求:利用抽象类 final修饰符 final修饰符可应用于修饰类、方法和变量 final的意义为终极或最终 final修饰符 final变量实际上是常量,可在定义时赋初值或在定义后的其他地方赋初值,但不能再次赋值。 final修饰的变量有三种:静态变量、实例变量和局部变量 格式:final 变量类型 变量名; final double PI=3.14; static final double PI=3.14; final修饰符 注:final变量定义的时候,可以先声明,而不给初值,这种变量也称为final空白,提供了更大的灵活性,可以根据对象的不同而赋不同的值 练习: P70 例3-3 使用final变量的例子 final修饰符 如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。 final方法不能被覆盖,即子类的方法构型不能与父类的final方法构型相同。 格式:final 返回类型 方法名{......} public final void f2() { System.out.println(f2); } final修饰符 使用final方法的原因: 第一、把方法锁定,防止任何继承类修改它的意义和实现。 第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。 练习: P69 例3-2 使用final方法的例子 final修饰符 final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。 在设计类时候,如果这个类不需要有子

文档评论(0)

beautyeve + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档