4_2继承-多态-访问控制.pptVIP

  • 2
  • 0
  • 约9.63千字
  • 约 40页
  • 2018-07-21 发布于天津
  • 举报
4_2继承-多态-访问控制.ppt

Java类设计 本节内容 类的继承 (1) 类的继承 (2) 类的继承 (3) extends 关键字 类的继承 (4) 单继承举例 域的继承与隐藏、添加 域的继承:子类可以继承父类的所有域(只要该域没有private或static修饰) 域的隐藏:子类重新定义一个与父类那里继承来的域变量完全相同的变量,称为域的隐藏 域的添加:定义子类时加上新的域变量 访问控制符 类的访问控制符 类的访问控制符或者为public,或者默认 public class 类名{ …… } 如果类用public修饰,则该类可以被其他类所访问 如果类默认访问控制符,则该类只能被同包中的类访问 成员访问控制举例(1) 成员访问控制举例(2) Ex1( 课后练习) 改造上述应用程序后,分析其结果,体会Java访问控制机制,可分下述几种情形: 应用程序入口main()方法定义在一个非子类中 Parent和Child类位于不同包中,main()在子类中 Parent和Child类位于不同包中, main()方法定义在不同包内的非子类中 方法的重写(覆盖) 在子类中可以根据需要对从父类中继承来的方法进行改造----方法的重写 重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型 重写方法不能使用比被重写方法更严格的访问权限 方法重写举例(1) 方法重写举例(2) 子类当中的构造方法 子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法 使用super关键字 关键字super 在Java类中使用super来引用父类的成员 super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造方法中调用父类的构造方法 关键字super举例 调用父类构造方法举例 (1) 调用父类构造方法举例 (2) 调用本类或者父类构造方法 使用this来调用本类的其他构造方法 使用super(argument_list)语句调用父类的构造方法 如果子类的构造方法中没有使用super显示地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法,相当于super() 如果子类构造方法中既未显式调用父类构造方法,而父类中又没有无参的构造方法,则编译出错 super()或者this()必须在构造方法的第一行,只能有一句。 对象构造和初始化细节 分配子类的存储空间并进行默认的变量初始化 按下述步骤初始化实例变量 绑定构造方法参数如有this()语句,则调用相应的重载构造方法, super()显式调用父类的构造方法 既无super也无this,隐式调用super() 进行实例变量的显式初始化操作 执行当前构造方法的方法体 构造和初始化对象举例 父类和子类的构造机理 在内存机制中,父类和子类是占用同一块内存的,只不过子类在父类的基础上增加了自己的部分(属性)。子类是依附于父类的,先有父类再有子类。 一个子类对象的产生,必须先调用父类的构造方法产生一个父类实例,然后在这个实例基础上添加自己的部分。 举例:StringTest.java Father01.java 父类对象与子类对象的转换 转换规则: 子类对象可以被视为其父类的一个对象 父类对象不能被当作其某个子类的对象 如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数 如果父类对象引用指向的实际是一个子类对象,那么这个父类对象的引用可以用强制类型转换成子类对象的引用 // student.java: class Person{ //父类 ... } class Student extends Person { //子类 ... public static void main (String args[]){ Person p1 = new Person (Liming,50); Student s1 = new Student (Wangqiang,20,PKU); Person p2 = new Student (Zhangyi,18,dlut); Student s2 = (Student) p2; } } 多态性 多态----在Java中,子类的对象可以替代父类的对象使用 一个引用类型变量只能有一种确定的数据类型 一个引用类型变量可能指向(引用)多种不同类型的对象 Person p = new Student(); Object o = new Person(); o = new Student(); 多态性应用举例(1) 多态性应用举例(2) == 与多态性 对于引用性变量,编

文档评论(0)

1亿VIP精品文档

相关文档