第0405章 类和对象设计.ppt

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

方法重写示例 * 成员变量的隐藏和方法的重写 class SuperClass{ int x; … void setX( ){ x=0; } … } class SubClass extends SuperClass{ int x; //hide x in SuperClass … void setX( ) { //override method setX() x=5; } …. } * Super (1) super用来引用当前对象的父类 (1) 访问父类被隐藏的成员变量,如: super.variable; (2)调用父类中被重写的方法,如: super.Method([paramlist]); (3)调用父类的构造函数,如: super([paramlist]); * Super (2) class SuperClass{ int x; SuperClass( ) { x=3; System.out.println(“in SuperClass : x=“ +x); } void doSomething( ) { System.out.println(“in SuperClass.doSomething()”); } } * Super(3) class SubClass extends SuperClass { int x; SubClass( ) { super( ); //call constructor of superclass x=5; //super( ) 要放在方法中的第一句 System.out.println(“in SubClass :x=“+x); } void doSomething( ) { super.doSomething( ); //call method of superclass System.out.println(“in SubClass.doSomething()”); System.out.println(“super.x=”+super.x+“sub.x=”+x) } } public class inheritance { public static void main(String args[]) { SubClass subC=new SubClass(); subC.doSomething(); } } * Super (4) 运行结果 c:\ java inheritance in SuperClass: x=3 in SubClass: x=5 in SuperClass.doSomething() in SubClass.doSomething() super.x=3 sub.x=5 * 方法重写应遵循的原则 (1)改写后的方法不能比被重写的方法有更严格的访问权限 (2)改写后的方法不能比重写的方法产生更多的例外 * 方法重写应遵循的原则 class Parent{ public void function( ) } } class Child extends Parent{ private void function( ) } } //出错,访问权限变小 public class OverriddenTest{ public static void main(String args[]) { Parent p1=new Parent(); Parent p2=new Child(); p1.function(); p2.function(); } } * 多态性 是由封装性和继承性引出的面向对象程序设计语言的另一特征。 静态多态性(编译时多态〕 由方法重载(overload)实现 动态多态性(运行时多态) 子类对象可以作为父类对象使用。在程序中凡是需要父类对象的地方,都可以用子类对象代替。 由方法重写(overridden)实现 调用规则:根据实例的类型决定调用的方法。 class A { int i, j; A(int a, int b) { i = a; j = b; } void show(String msg) {

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档