java全套简明教程ch09 - 继承和多态.ppt
还剩
19页未读,
继续阅读
下载文档到电脑,马上远离加班熬夜!
亲,喜欢就下载吧,价低环保!
内容要点:
ArrayListo java.util.ArrayList类表示一个内部以数组存储的线性表。Example:TestArrayList.java, TestArrayListGeneric.javafinal修饰符o final数据:常量,数据初始化后不能再修改。o final方法:最终方法,子类不能覆盖。o final类:最终类,不能派生子类。n String, StringBuffero final局部变量 :数据初始化后不能再修改。o 类成员的访问控制符o 类的访问控制符n public:类可以被任何包中的类访问n 无 (package):只有同一个包中的类可以访问访问控制符成员修饰符 同一个类 相同包中的类 子类 不同包中的类public √ √ √ √protected √ √ √无 (package) √ √private √protected修饰符o protected修饰符用于修饰数据和方法,可以被同一个包中的任何类或不同包中的子类访问。P2P1C1public int xprotected int yint zprivate int uC4C5C1 c1 = new C1()C2C3C1 c1 = new C1()C2中的代码可以访问 x,y,zC3中的代码可以访问 c1对象中的 x,y,zC4中的代码可以访问 x,yC5中的代码可以访问 c1对象中的 x隐藏数据字段和静态方法o 如果子类中声明的数据字段和静态方法与父类中的名称相同,那么父类中的将被 隐藏 (hide)。n 通过 super关键字访问被隐藏的数据字段和静态方法。n 通过父类型的变量访问被隐藏的数据字段和静态方法。o 成员访问n 实例方法根据 变量所引用的对象的实际类型 进行访问。n 数据字段和静态方法根据 变量的声明类型 进行访问。Example:HideDemo.javaA x = new B();例 强制类型转换o 编写程序,创建两个几何对象:圆和矩形。调用displayObject来显示结果。n 如果对象是圆,显示半径和面积n 如果对象是矩形,显示面积Example:v2/TestPolymorphismCasting.javainstanceof操作符o 可以用 instanceof操作符判断一个对象是否是一个类的实例。表达式返回 boolean值。o 语法referenceVariable instanceof TypeName类型转换o 类型转换 (type casting)可以将一个对象的类型转换成继承结构中的另一种类型。n 从子类到父类的转换是合法的,称为隐式转换。m(new Student());?Object o = new Student();m(o);n 从父类到子类必须显式转换 ,被转换的变量所指向的对象的类型必须是转换类或它的子类。Object o = new Student();Student s = (Student)o; o所指向的对象必须是 Student或 Student子类的对象通用编程o 父类变量可以引用子类对象 ,针对父类对象设计的任何代码都可以应用于子类对象。n 多态性允许方法使用更通用的类作为参数类型。n 如果方法参数是父类,那么这个参数可以接受任何子类对象作为实参。当调用这对象的方法时,将动态绑定方法的实现。Example:poly/PolymorphismDemo.java多态性、动态绑定o 当调用实例方法时,由 Java虚拟机动态地决定所调用的方法,称为 动态绑定 (dynamic binding) 或为 多态(polymorphism)。假定对象 o是类 C1的实例, C1是 C2的子类, C2是 C3的子类, …, Cn-1是 Cn的子类。也就是说, Cn是最 一般 的类, C1是 最特殊的类
发表评论
暂无评论,赶快抢占沙发吧。