面向对象程序设计进阶(上)a.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文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 类的继承 在现有类的基础上构建新的类。 当继承一个现有类时,就重用(继承)了那个类的方法和属性,同时,还可以向新类中增添新的方法和属性。 类的继承 类继承的基本语法: modifier class name [extends superclass ] { declaration } 在Java中,一个类只能继承继承一个父类,这种方式叫做单继承。这一点和C++不一样。 类的继承 java.lang.Object类是所有类的父类 虽然一个类只可以继承一个父类,但是一个父类却可以被多个子类所继承。 从子类的角度看,它是“继承(extends)”父类;而从父类的角度看,它是“派生(derive)”子类。它们指的都是同一个动作,只是角度不同而已。 继承的特点 1.通过继承可以简化类的定义 ,实现代码重用。 2.Java只支持单继承,不允许多重继承(使用接口替代)。 3.可以有多层继承,即一个类可以继承某一个类的子类,如类B继承了类A,类C又可以继承类B,那么类C也间接继承了类A。 4.子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法。在子类的构造方法中可使用语句super(参数列表) 调用父类的构造方法。 方法的覆盖(override) 当子类继承父类时,可以从父类继承它的属性和方法。 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 方法的覆盖(override) 要求:方法名相同,参数相同,返回类型形同 A、父类中方法与子类中方法同方法签名 B、方法返回类型一致 C、方法的访问修饰权限必须是子类大于等于父类(publicprotected[default]private) D、满足异常规约(子类方法掷出的异常必须小于等于父类,或者不掷出)运行时多态 方法的覆盖例子(案例6-2) public class Person { String name; int age; String sex; public String showName() { return name; } … … } 方法的覆盖例子(con.) public class Teacher extends Person { private String department; public void setDepartment(String dept) { department = dept; } public String getDepartment() { return department; } //方法覆盖 public String showName() { return name+老师; } … … } 对象的类型转换 A. 子类能自动转换成父类。除此之外,程序还可以直接创建一个子类的实例对象,传递给需要父类的实例对象作为参数的方法,在参数传递过程中发生了隐式自动类型转换。 理解子类能够自动转换成父类:人是父类,男人是子类 B. 父类转换成子类需要进行强制类型转换。 理解父类转换成子类需要进行强制类型转换:一个男人肯定是人,一个人却不一定是男人。在不确定一个人是男人还是女人的时候强行使用男人或女人的特定方法是会出现问题的,所以编译不通过。强制类型转换其实是告诉编译器,我确定这个人是男人或女人。在强制类型转换时,程序员是要对转换完后的后果负责的,也就是要确保在内存中存在的对象本身确实是可以被转换的类型,否则即使编译通过,运行还是会出错的。强制类型转换的前提是程序员提前就知道要转换的父类引用类型对象的本来面目确实是子类类型的。 instranceof Instanceof一般用于在强制类型转换之前判定变量是否可以强制转换。 instanceof用于判定是否将前面的对象变量赋值后边的类名。 Student extends Person s instanceof Person;(这个式子的结果是一个布尔表达式) s为对象变量,Person是类名。 上面语句是判定s是否可以贴Person标签,即student是否是Person的子类或是实现了Person接口。如果可以贴则返回true,否则返回false。 toString()方法(案例6-12) 在Object类中,定义了一个toString()方法,用于返回一个

文档评论(0)

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

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

1亿VIP精品文档

相关文档