大学教程(从零开始)面向对象编程基础.ppt

大学教程(从零开始)面向对象编程基础.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.2.6 继承 继承是面向对象语言的重要机制。借助继承可以扩展原有的代码,应用到其他程序中,不必重新编写这些代码,在Java中,继承是通过扩展原有的类,声明新类来实现的。 扩展声明的新类称为子类,原有的类称为超类(父类) Java语言不支持多重继承,限定一个类只能有一个超类。 extends class 子类名 extends 父类名 { 类体 } class E extends D{ } 如果不指定超类,则该类的超类是系统声明的类 Java.lang.Object 子类自然的继承其父类中不是private的成员变量作为自己的成员变量,并且自然的继承父类中不是private的方法作为自己的方法。 类的继承原则如下: 子类继承父类的成员变量,包括实例成员变量和类成员变量。 子类继承父类除构造方法以外的成员方法,包括实例成员方法和类成员方法。 重写 子类不满意父类的方法时,在子类中可以根据需要对从父类继承来的方法进行重写。 重写方法必须和被重写方法具有相同的方法名称、参数列表和返回类型。 重写方法不能使用比被重写方法更严格的访问权限。 TestOverWrite.java 与重载(overload)的区别:重载是函数名同,参数不同。 重写 子类Dau中声明了方法dance(),跟父类(超类)中的方法的名字,个数,类型完全相同,超类的方法在子类中被隐藏。 子类对象调用dance()时,自然调用子类的dance()方法。 超类方法在子类中隐藏称为重写或置换。 子类对成员变量的隐藏和方法的重写可以把超类的状态和行为改变为自身的状态和行为。 方法重写的例子 (1)多态性 动态联编(动态绑定):编译时暂不绑定调用哪个方法,而是在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。 new出对象来之后才能确定到底调用哪一个方法。 (2)多层继承 多层继承 继承声明的新类,又可以被其他类再继承,从而构成多层继承。 (3)多层继承中构造方法的调用顺序 构造方法的调用顺序与类的继承顺序一致,从最高层次的超类开始,按继承顺序调用各类的构造方法。 如果子类的构造方法要调用超类的构造方法,给从超类继承的成员变量初始化,用super。 关键字super用来引用基类的成分。 this:指向对象本身。 super:指向当前对象的父对象。 继承中的构造方法 子类的构造过程必须调用其基类的构造方法。 先构造父类对象,再把剩下的东西造出来 使用super(参数列表)调用基类的构造方法; 使用this(参数列表)调用本类的另外的构造方法。 如果调用了super,必须写在子类构造方法的第一行。 如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用基类无参数的构造方法。 如果子类构造方法中既没有显式地调用基类构造方法,而基类中又没有无参的构造方法,则编译出错。 3.2.7 java面向对象的其他机制 final类,final方法,final变量 final的类不能够被继承。 final class D{ } class M extends D 错误 final的方法不能够被重写。 final修饰变量,声明该变量的值不能被改变,相当于常量。 final的成员变量 final的局部变量(形参) final int variableName=10; final int a; a=1; a=2 错误 习惯常量名用大写 abstract 用abstract 关键字来修饰一个类时,这个类叫做抽象类。用abstract 关键字来修饰一个方法时,这个方法叫做抽象方法。 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。(子类去实现) 抽象类不能被实例化。 抽象方法只需声明,不需实现。 super 子类隐藏了超类的成员变量或者覆盖了超类方法后,利用super,子类可以引用超类的成员变量或被覆盖的方法 使用3种情况: 使用super调用超类的构造方法 使用super调用超类被子类覆盖的方法 使用super访问超类被子类隐藏的成员变量 this 关键字this用来指自己。this有多种作用,例如,将对象自己作为参数,调用别的方法.当方法的局部变量隐藏成员变量时,利用this引用成员变量,在构造函数内调用另一构造函数。 class Point{   int x,y;   Point(){    x=10; y=20;}   Point(int x, int y){    this.x=x;    this.y=y;}   } Point p1,p2 class B{ int b,c; B (){

文档评论(0)

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

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

1亿VIP精品文档

相关文档