Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16495621
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:39:43

下载本文示例代码
  或许大家java的多态问题,对上溯,下溯造型有了一定的概念,对protect和private大家想必也很清楚,但是,这几个个结合在一起,往往令人产生很多困惑,在这里,我举一个例子,大家或许会发觉这篇文章对你来说还是很有意义的:  例子一共有两个class. 可能出现困惑的地方我都会在后面一一解释。  A是一个父类,B继承A,并且实现了protectedTest(Object obj)方法.如下面所示:  B.java的源代码: package cn.org.matrix.test;import cn.org.matrix.test.A;/*** <p>Title: protect, private and upcasting </p>* <p>Description: email:chris@matrix.org.cn</p>* <p>Copyright: Matrix Copyright (c) 2003</p>* <p>Company: Matrix.org.cn</p>* @author chris* @version 1.0,who use this example pls remain the declare*/public class B extends A{protected int protectedb = 0;protected int protectedab = 0;protected void protectedTest(Object obj){System.out.println("in B.protectedTest(Object):" obj);}}  A.java的源代码: package cn.org.matrix.test;import cn.org.matrix.test.B;/*** <p>Title: protect, private and upcasting </p>* <p>Description: email:chris@matrix.org.cn</p>* <p>Copyright: Matrix Copyright (c) 2003</p>* <p>Company: Matrix.org.cn</p>* @author chris* @version 1.0,who use this example pls remain the declare*/public class A{protected int protecteda = 0;protected int protectedab = 0;private void privateTest(){System.out.println("in A.privateTest()");}protected void protectedTest(Object obj){System.out.println("in A.protectedTest(Object):" obj );}protected void protectedTest( String str ){System.out.println("in A.protectedTest(String):" str);}public static void main (String[] args){// Test AA a1 = new A();a1.privateTest();// Test BString helloStr = "Hello";Object helloObj = helloStr;B b1 = new B();A a2 = b1; // 这里发生了什么?困惑1b1=a1; //编译错误,困惑2b1. privateTest(); //编译错误,困惑3b1.protectedTest(helloObj); //输出结果?困惑4b1.protectedTest(helloStr); //编译错误,困惑5a2.protectedTest(helloObj); //输出结果? 困惑6a2.protectedTest(helloStr); //输出结果?困惑7 ?}}共4页。 1 2 3 4 :   或许大家java的多态问题,对上溯,下溯造型有了一定的概念,对protect和private大家想必也很清楚,但是,这几个个结合在一起,往往令人产生很多困惑,在这里,我举一个例子,大家或许会发觉这篇文章对你来说还是很有意义的:  例子一共有两个class. 可能出现困惑的地方我都会在后面一一解释。  A是一个父类,B继承A,并且实现了protectedTest(Object obj)方法.如下面所示:  B.java的源代码: package cn.org.matrix.test;import cn.org.matrix.test.A;/*** <p>Title: protect, private and upcasting </p>* <p>Description: email:chris@matrix.org.cn</p>* <p>Copyright: Matrix Copyright (c) 2003</p>* <p>Company: Matrix.org.cn</p>* @author chris* @version 1.0,who use this example pls remain the declare*/public class B extends A{protected int protectedb = 0;protected int protectedab = 0;protected void protectedTest(Object obj){System.out.println("in B.protectedTest(Object):" obj);}}  A.java的源代码: package cn.org.matrix.test;import cn.org.matrix.test.B;/*** <p>Title: protect, private and upcasting </p>* <p>Description: email:chris@matrix.org.cn</p>* <p>Copyright: Matrix Copyright (c) 2003</p>* <p>Company: Matrix.org.cn</p>* @author chris* @version 1.0,who use this example pls remain the declare*/public class A{protected int protecteda = 0;protected int protectedab = 0;private void privateTest(){System.out.println("in A.privateTest()");}protected void protectedTest(Object obj){System.out.println("in A.protectedTest(Object):" obj );}protected void protectedTest( String str ){System.out.println("in A.protectedTest(String):" str);}public static void main (String[] args){// Test AA a1 = new A();a1.privateTest();// Test BString helloStr = "Hello";Object helloObj = helloStr;B b1 = new B();A a2 = b1; // 这里发生了什么?困惑1b1=a1; //编译错误,困惑2b1. privateTest(); //编译错误,困惑3b1.protectedTest(helloObj); //输出结果?困惑4b1.protectedTest(helloStr); //编译错误,困惑5a2.protectedTest(helloObj); //输出结果? 困惑6a2.protectedTest(helloStr); //输出结果?困惑7 ?}}共4页。 1 2 3 4 : 下载本文示例代码


对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨对Java多态性综合运用的探讨
阅读(109) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~