java程序设计教程的源码

源代码在线查看: uptransferobjecttype.java

软件大小: 3939 K
上传用户: lxwcqq
关键词: java 程序设计 教程 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

				//【例4-11】  上转型对象的使用。
				//程序清单4-11:  UpTransferObjectType.java
				package e4_11;
				
				public class UpTransferObjectType {
					public static void main(String args[]) {
						A obja;// 声明类A的对象引用变量obja
						B objb;// 声明类B的对象引用变量objb
						obja = new B();// 对象obja为子类B对象的上转型对象
						// 不论父类中的成员变量被子类隐藏与否,上转型对象始终访问父类中的成员变量(包括被隐藏的变量)
						System.out.print("上 转 型对象obja:\n" + "a1 = " + obja.a1 + "\t" + "a2 = "
								+ obja.a2 + "\t");
						// 若父类中的方法没被子类重写,则上转型对象访问的方法是原父类中的方法
						obja.arithmeticOperation(10, 10);
						// 若父类中的方法被子类重写,则上转型对象访问的方法必定是子类中重写的方法
						obja.fatherMethod();
						// 上转型对象不能访问子类中新增的成员变量和成员方法
						// System.out.println(obja.c1);
						objb = (B) obja;// 将上转型对象强制转换为子类对象
						// 若父类中的成员变量被子类隐藏,则子类对象必定访问子类中重新定义的成员变量
						System.out.print("\n强制转换对象objb:\n" + "a1 = " + objb.a1 + "\t" + "a2 = "
								+ objb.a2 + "\t");
						// 子类对象调用继承自父类的方法
						objb.arithmeticOperation(10, 10);
						// 子类对象调用重写的方法
						objb.fatherMethod();
						// 子类对象调用新增的成员变量
						System.out.println("c1 = " + objb.c1);//
					}
				}
				
				class A {// 类A
					int a1 = 10;
				
					int a2 = 100;
				
					public void arithmeticOperation(int x, int y) {
						System.out.println("x + y = " + (x + y));
					}
				
					public void fatherMethod() {
						System.out.println("调用父类A的方法:fatherMethod()");
					}
				}
				
				class B extends A {// 类B继类A
					// 继承了父类的成员变量a1和成员方法arithmeticOperation()
					int a2 = 1000;// 隐藏(重写)父类的成员变量
				
					int c1 = 10000;// 子类新增的成员变量
				
					public void fatherMethod() {// 重写父类中的成员方法
						System.out.println("调用子类B的方法:fatherMethod()");
					}
				}
							

相关资源