第10讲Java的继承与多态(二).ppt.ppt

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

第10讲 Java的继承与多态(二) 方法覆盖 superthis关键字 final关键字 教学目标 掌握实现方法覆盖的方法 掌握super、this关键字的意义及使用方法 掌握final关键字的意义及使用方法 理解Object类的作用及其常用方法 了解多态的意义 掌握重载的使用方法 super 关键字的使用 在Java的覆盖机制中,子类中的同名成员变量或方法隐藏了超类的成员变量或方法,如果在子类中,希望使用父类中的那些被子类覆盖的成员或方法,就需要借助于super这个关键字。另外,若在子类中调用父类的构造方法,也需要利用super实现。 this关键字的使用 super——用来表示直接父类。 this——访问当前对象。 当在一个类中要明确指出使用当前对象本身的变量或方法时,就可以使用this关键字代表当前类。 this的另一个用途是调用当前对象的另一个构造方法。假如一个类中定义了几个构造方法,可以使用this关键字引用当前类中定义的其他构造方法。 superthis示例 superthis示例(续) superthis示例(续) final关键字的使用 覆盖(overriding)固然有其便利性,但在设计类时,如果基于某些因素,父类的方法不希望子类的方法来覆盖它,便可在父类的方法之前加上“final”关键字,如此该方法便不会被覆盖。 Object类 Object类抽象了所有类共有的一些属性和方法,它是一切类的父类,所有的类均直接或间接继承它,是类之源。所以,Person类的父类是Object类。 Object类的方法 getClass()方法的使用 getClass()方法返回一个Class类对象,该对象内部包含了一些能够标识当前对象的信息。如果想知道某个对象obj是属于哪个类时,可用obj.getClass()来查询 equals()方法的使用 equals()方法通过参数带入一个对象,将它与当前对象进行比较,测试两个对象是否相等。如果是,则返回true,否则返回false。 toString()方法的使用 toString()方法的功能是将对象的内容转换成字符串,并返回其内容。例如,若变量a是指向由类A所创建的对象时,则下面的语句会调用toString()方法,并输出所指向对象的内容: A a=new A(2); System.out.println(a); 上面的语句是以类类型的变量a当成println()的参数,此时,Java会先通过变量a调用toString()方法,再把结果当成println()的参数。也可以用下面的语法来便编写相同功能,且容易理解的语句: System.out.println(a.toString()); 覆盖Object类的toString()方法 重载 所谓的“重载”是指相同的方法名称,若参数个数不同,或参数个数相同、类型不同的话,方法便具有不同的功能。 重载是多态技术的一种。 运用方法重载需要注意的是,可以定义名称相同,但参数不同的方法;但不可以定义名称相同,而且参数也完全一致的方法。例如,下面的程序代码有误。 public void setPerson(int age); public int setPerson(int age); 其原因是,一旦调用了setPerson()方法,程序无法判断是哪一个方法被调用。事实上,若尝试编译这样的类,编译器也会出现错误信息。 多态的定义与作用 多态是在类体系中把设想(想要“做什么”)和实现(该“怎么做”)分开的手段,它是从设计的角度考虑的。多态性意味着某种概括的动作可以由特定的方式来实现,这种特定的方式取决于执行该动作的对象。 如果从面向对象的语义角度来看,可以简单理解为多态就是“相同的表达式,不同的操作”,也可以说成“相同的命令,不同的操作”。 多态有两种情况,一种是覆盖技术,另外就是重载技术。覆盖是在子类中直接定义和父类同样的属性和方法,但重新编写了方法体,即子类与父类方法的形参与返回值都相同,而内部处理不同,这种方法在使用过程中,Java虚拟机会根据调用这个方法的类来确定哪个方法被调用。 多态示例 多态示例(续) 构造方法的重载 在Java中,不仅方法可以重载,构造方法也可以重载。同普通方法的重载,可以在一个类中定义几个构造方法,只要构造方法的参数列表不同即可。 构造方法重载示例(续) 构造方法重载示例(续) 作业 习题6的1~6 * * Object类 多态的定义与作用 构造方法的重载 super使用方法如下: super.成员变量名称 //使用父类的成员变量 super.方法名称(参数列表) //使用父类的方法 this使用方法如下: this.成员变量名称

文档评论(0)

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

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

1亿VIP精品文档

相关文档