java课件第六章类设计(编辑修改稿)内容摘要:

用 Person e = new Person()。 ()。 Student e = new Student()。 ()。  虚拟方法调用 (多态情况下 ) Person e = new Student()。 ()。  编译时类型和运行时类型 22 多态性应用举例 (1)  同类收集 ( homogenous collections) MyDate[] m = new MyDate[2]。 m[0] = new MyDate(22, 12, 1964)。 m[1] = new MyDate(22, 7, 1964)。  异类收集 (heterogeneous collections) Person [] p= new Person[3]。 p[0] = new Student()。 p[1] = new Person()。 p[2] = new Graduate()。 23 多态性应用举例 (2)  方法声明的参数类型为父类类型,可以使用子类的对象作为实参调用该方法 public class Test{ public void method(Person e) { //…… ()。 } public static void main(Stirng args[]){ Test t = new Test()。 Student m = new Student()。 (m)。 } } 24 instanceof 操作符 public class Person extends Object {…} public class Student extends Person {…} public class Graduate extends Person {…} public void method1(Person e) { if (e instanceof Student) { // 处理 Student类型及其子类类型对象 } else if (e instanceof Graduate) { //处理 Graduate类型及其子类类型对象 } else { //处理 Person类型对象 } } 25 对象造型 (Casting )  对 Java对象的强制类型转换称为造型  在造型前可以使用 instanceof操作符测试一个对象的类型  从子类到父类的类型转换可以自动进行  从父类到子类的类型转换必须通过造型 (强制类型转换 )实现  无继承关系的引用类型间的转换是非法的 26 对象造型举例 public class Test{ //Person及 Student类的定义见第 17页 public void method(Person e) { (())。 //非法 if(e intstanceof Student){ Student me = (Student)e。 (())。 } } public static void main(Stirng args[]){ Test t = new Test()。 Student m = new Student()。 (m)。 } } 27 方法名重载  在同一个类中可以定义多个同名方法 方法名重载 public class PrintStream{ public void println(int i) {……} public void println(float f) {……} public void println(String s) {……} }  重载方法的参数列表必须不同  重载方法的返回值类型可以相同,也可以不同 28 构造方法重载  构造方法重载举例: public class Person{ public Person(String name, int age, Date d) {…} public Person(String name, int age) {…} public Person(String name, Date d) {…} }  构造方法重载,参数列表必须不同  可以在构造方法的第一行使用 this关键字调用其它 (重载的 )构造方法 29 构造方法重载举例 public class Person { private String name。 private int age。 private Date birthDate。 public Person(String name, int age, Date d) { = name。 = age。 = d。 } public Person(String name, int age) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。