A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭荣强 高级黑马   /  2014-4-18 14:44  /  521 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我在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(){}
}

5 个回复

倒序浏览
java中protected
    1. protected 访问控制符能被用于方法和成员变量。
    2. 声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。
    3. 能被该类的子类所访问,子类可以和父类不在一个包中。
    这样,当你想让一个类中的某个方法或成员变量在包中都可见,而且其子类也能访问(子类有可能和父类不在同一个包中)但又不想让所有类都可以访问该类时,就可以用protected修饰符。

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

回复 使用道具 举报
你的本包中有Test类。你再引入另一个包中的Test类,会产生类名冲突。
去掉import day14.Test;这句代码
创建day14包实例用全类名:         new day14.Test();
创建本包类Test实例:                  new Test();
回复 使用道具 举报
vtming 发表于 2014-4-18 15:12
你的本包中有Test类。你再引入另一个包中的Test类,会产生类名冲突。
去掉import day14.Test;这句代码
创建 ...

恩  是的
回复 使用道具 举报

我去,大哥,你技术分好多啊?咋弄的?我小白啊.............:'(
回复 使用道具 举报
vtming 发表于 2014-4-18 15:23
我去,大哥,你技术分好多啊?咋弄的?我小白啊.............

多多问题,多多回答问题。问的,回答的深点。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马