11面向对象程序设计进阶中.pptVIP

  • 2
  • 0
  • 约1.46千字
  • 约 11页
  • 2019-03-16 发布于湖北
  • 举报
面向对象程序设计进阶(中) super关键字 this关键字 重载 super 关键字 在Java类中使用super来引用父类的成分 super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造器中调用父类的构造器 super的追溯不仅于直接父类 调用父类构造器(案例6-3) 在子类的构造器中可使用语句super(argument_list) 调用父类的构造器 如果子类的构造器中没有显式地调用父类构造器,也没有使用this关键字调用重载的其它构造器,则系统默认调用父类无参数的构造器 如果子类构造器中既未显式调用父类构造器,而父类中又没有无参的构造器,则编译出错 super关键字例子(案例6-4) public class Person { private String name; private int age; private String sex; public String showName() { return name; } … … } super关键字例子(con.) Public class Teacher extends Person { … … //方法覆盖 public String showName() { //return name+老师; return super.showName()+老师; } … … } 方法的重载 当类中的方法名相同时,称为方法的重载(overload) 例如: public void println(int i); public void println(char c); public void println(String s); 构造器的重载(案例6-5) 除了方法外,类的构造器也可以实现重载 类的构造器可以相互调用,调用方式是使用this关键字来实现 this Java中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象。 构造器中指该构造器所创建的新对象 方法中指调用该方法的对象 this关键字的用法 在类本身的方法或构造器中引用该类的实例变量和方法(案例6-6) 将当前对象作为参数传递给其它方法或构造器(案例6-7) 用来调用其他的重载的构造器(案例6-8) 对象的构造和初始化分析 内存分配,缺省的初始化进行 实例变量的初始化如下递归的进行 1. 设置实例变量的值为缺省的初始值 2. 调用对象的构造器 ,绑定构造器参数。 3. 如果构造器中有this()调用,则根据this()调用的参数调用相应的重载构造器,然后,转到步骤5;否则转到步骤4。 4. 除java.lang.Object类外,调用父类的中的初始化块初始化父类的属性,然后调用父类构造器,如果在构造器中有super()调用,则根据super()中的参数调用父类中相应的构造器。 5. 使用初始化程序和初始化块初始化成员。 6. 执行构造器方法体中其他语句。 初始化块(案例6-9) 它指的是前面章节所属的“游离块” 不管使用哪个构造器创建对象,它都会被首先运行,然后才是构造器的主体部分被执行 对象初始化示例(案例6-10) 父类Person,子类Teacher 初始化的三种情形 调用父类的默认构造器 构造器中使用了this()调用本类中重载的构造器 构造器中使用了super()调用父类的构造器 * * * *

文档评论(0)

1亿VIP精品文档

相关文档