黑马程序员技术交流社区

标题: 问个小问题 [打印本页]

作者: 谭荣强    时间: 2014-4-18 14:44
标题: 问个小问题
我在day11中导入了day14的Test类。现在想在day11中在建一个Test类,建好了import day14.Test这一句就报错。怎么键呢?
package day11;
import day14.Test;
public class Test1 {

        /**练习 访问day14包中的Test中的protected方法。
         * 1.不同包间访问protected访问。
         * 2.不同包,子类的protected访问。
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                new day14.Test();//无法调用show()
        }
}
class Test {
        void show1(){}
}
作者: 左拉    时间: 2014-4-18 14:58
java中protected
    1. protected 访问控制符能被用于方法和成员变量。
    2. 声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。
    3. 能被该类的子类所访问,子类可以和父类不在一个包中。
    这样,当你想让一个类中的某个方法或成员变量在包中都可见,而且其子类也能访问(子类有可能和父类不在同一个包中)但又不想让所有类都可以访问该类时,就可以用protected修饰符。

加上继承就可以访问
    可访问性:
    public > protected > package >private


作者: vtming    时间: 2014-4-18 15:12
你的本包中有Test类。你再引入另一个包中的Test类,会产生类名冲突。
去掉import day14.Test;这句代码
创建day14包实例用全类名:         new day14.Test();
创建本包类Test实例:                  new Test();
作者: 谭荣强    时间: 2014-4-18 15:20
vtming 发表于 2014-4-18 15:12
你的本包中有Test类。你再引入另一个包中的Test类,会产生类名冲突。
去掉import day14.Test;这句代码
创建 ...

恩  是的
作者: vtming    时间: 2014-4-18 15:23
谭荣强 发表于 2014-4-18 15:20
恩  是的

我去,大哥,你技术分好多啊?咋弄的?我小白啊.............:'(
作者: 谭荣强    时间: 2014-4-18 23:52
vtming 发表于 2014-4-18 15:23
我去,大哥,你技术分好多啊?咋弄的?我小白啊.............

多多问题,多多回答问题。问的,回答的深点。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2