软件技术PPT继承.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* Dynamic Binding(late Binding) Person p = new Student(“1”,“张三”,“计算机"); p.display();//因为p指向的是Student对象, //所以这里调用的是student类的display方法 Java虚拟机在运行程序时动态绑定方法的实现,究竟是调用父类的方法还是子类的方法是由对象决定的。 * Early binding Person p = new Student(“1”,“张三”,“计算机"); p. study(); //编译错误 通过变量可以调用哪些方法,是在编译期由变量的类型决定的, 属于前期绑定,因为p是Person类型,Person类中没有study方法,所以不能调用。 * Binding 通过方法的调用语句找到方法体的过程称为绑定. 在程序运行前的编译期实现的绑定称为early binding(前期绑定) 在程序的运行时才进行绑定,称为late binding(后期绑定),这种绑定以对象的类型来决定调用哪一个方法 * polymorphism多态性 public class Poly { public void show(Student s){ s.display(); } public void show(Teacher t){ t.display(); } } public class Poly { public void show(Person p){ p.display(); } } 最好改成这样 show方法怎么调用? * The protected Modifier 子类和父类在同一包中,子类可以访问的部分: (1) 父类中public的成员; (2) 父类中protected的成员; (3) 父类中package的成员 子类和父类不在同一包中,子类可以访问的部分: (1)父类中public的成员; (2)父类中protected的成员; * Visibility Modifiers C1,C2,C3同包 C4,C5同包 * The final Modifier final class不能被继承 final class Math { ... } final变量: final static double PI = 3.14159; final方法不能被覆盖 * final class A{ } class B extends A{ // illegal } class A{ final void meth(){ System.out.println(“a final method");} } class B extends A{ void meth (){ // illegal } } * Object类的toString方法 System.out.print(object); 等价于 System.out.print(object.toString()); Student s = new Student(“1”,“张三”,“计算机"); System.out.println(s); 等价于 System.out.println(s.toString()); * Object类的toString方法 Object类的toString方法的定义: public String toString() 返回代表该对象的字符串,默认情况下返回:类名@该对象的16进制hashcode * Object类的toString方法 如果希望设计的类具有一个有意义的toString返回值,则需要让这个类覆盖Object类的toString方法,并让这个方法返回一个有意义的字符串 * Object类的toString方法 public class Student extends Person{ … public String toString(){ return this.getID() + "-" + this.getName() + "-" + this.getMajor(); } } Object类的equals方法 public boolean equals(Object obj) { return (this == o

您可能关注的文档

文档评论(0)

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

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档