包编译问题?--》高手请进,许多人都没帮我解决这个问题?
主类:程序代码:
//package org.lxh.demo03; import org.lxh.demo02.*; public class OODemo05 { public static void main(String []args){ new DemoD(); //DemoC dc=new DemoC(); //System.out.println(dc.info); } }C类:
程序代码:
package org.lxh.demo01; public class DemoC { protectedString info="ss-->cay"; }D类
程序代码:
package org.lxh.demo02; import org.lxh.demo01.*; public class DemoD extends DemoC { public DemoD(){ System.out.println("** INFO = "+super.info); } }为什么编译时会出错
但是去掉主类中的最前面的
package org.lxh.demo03;语句前面的注释能正常编译且能得到正确的结果。
但是我的问题是为什么要加这句,不加道里也说的通啊,也应该能得到正确的结果啊,但是我编译的时候会出错?
我这样分析的:因为DemoD是public,所以能够访问,而DemoD类也是能够访问DemoC类的protected属性的,因为他们是子类与父类的关系。
求高手能够帮我解决下?
[ 本帖最后由 E_xuan 于 2009-9-25 14:56 编辑 ]