基础教程(第4章).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文档。上传文档
查看更多
基础教程(第4章)

第4章 继承、接口和内部类 继承、超类和子类 抽象类和接口 内部类 Class类 4.1 继承、超类和子类 继承是一种由已有的类创建新类的机制。 运用继承,可以先创建一个通用类,它定义一组相关属性的一般特性。该类可以具体类继承,每个具体类都增加一些自己特有的东西。 被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。 子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。 Java不支持多重继承,即一个类从多个超类派生的能力。 通过继承可实现代码复用。Java 中所有的类都是通过直接或间接地继承java.lang.Object类得到的 4.1.1 子类 继承一个类,要用extends关键字指定要继承的父类。 创建子类的一般格式为: class SubClass [extends SuperClass] { … } 4.1.2子类的继承 子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。例如: 思考: 1 、在定义一个类中,当局部变量和成员变量同名时,会怎么样?如何使用同名成员变量? 2、在定义一个类中,多次定义同名不同参的方法时,会怎么样?在这些方法中,如何使用前面被定义的同名不同参的方法? 2、在定义一个子类时,当子类定义了和父类同名的成员变量和方法时,会怎么样?如何使用父类中同名的成员变量和方法? 方法重写及重写规则 子类定义了和父类同名、同参、同返回类型的方法,称为子类重写了父类的方法 规则: 子方法的名称、参数类型及顺序、返回类型必须与重写方法相同 不能降低的重写方法的访问性 不能比重写方法抛出更多的异常 4.1.3 super关键字 关键字super表示父类对象。 在子类中使用super做前缀可以引用被子类隐藏的父类变量或被子类重写的父类方法 子类不能继承父类的构造方法,但在子类可用super关键字调用父类的构造方法。此时必须是方法体中第一条语句。 1.Super的使用方法 访问父类被隐藏的成员变量 super.variable; 调用父类中被重写的方法super.Method([paramlist]); 在子类的构造方法中,调用父类的构造方法 super([paramlist]); P87 【例4-3】利用supers操作父类的构造方法。 若子类在定义构造方法中,没有使用super调用父类的某个构造方法,则系统默认有“super()”,即调用父类不带参数的构造方法,产生一个调用父类构造函数的数据链 。最终发生的是父类构造函数(可能几个)将在链中的任何子类构造函数前执行。 Java规定如果在一个类中含有一个或多个构造方法,系统不提供默认的构造方法(不含参数的构造方法),所以当在父类中定义了多个构造方法时,应考虑包括一个不带参数的构造方法,以防止子类省略super关键字时出现错误。 对象的上转型对象 假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用赋值给A类的对象时: A a; B b=new B(); a=b; 称这个A类对象:a,是子类对象b的上转型对象 对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原子类对象的一些属性和功能。 如果子类重写了父类的某个方法后,对象的上转型对象调用这个方法时,一定是调用了子类重写的方法。 可以将对象的上转型对象再强制转换到原子类对象(下转换对象) ,这时,该子类对象又具备了子类所有属性和功能。 class 动物 { void cry() { } } class 狗 extends 动物 { void cry() { System.out.println(汪汪.....); } } class 猫 extends 动物 { void cry() { System.out.println(喵喵.....); } } class Example { public static void main(String args[]) { 动物 dongwu; if(Math.random()=0.5) { dongwu=new 狗();

文档评论(0)

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

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

1亿VIP精品文档

相关文档