两个不同包里有相同的类

今天刚开始看《java编程思想》第六章——访问权限控制,想到了一个问题,就是你导入了两个不同的包,包里面有相同名字的类,会怎样?
有这么几种情况(我用的是JDK8):
1.导入两个包,但不调用这个类
首先创建两个包,我创建的是Dome 和 Dome05,里面都有Dome01这个类,

Dome05包里面有Dome03类
package Dome06;
import Dome05.*;
import Dome.*;
public class Dome02 {
	Dome03 d2 = new Dome03();
}

没有报错
2.导入包内所有的类;

package Dome06;
import Dome05.*;
import Dome.*;
public class Dome02 {
	Dome03 d2 = new Dome03();
	Dome01 d  = new Dome01();
}

出现报错:The type Dome01 is
ambiguous               Dome01摸棱两可
是因为Dome01 不知道是哪一个包里的,所以会报错。
3.导入单个类

package Dome06;
import Dome05.*;
import Dome.Dome01;

public class Dome02 {
	Dome01 d  = new Dome01();
	Dome03 d2 = new Dome03();
}

导入单个类,就不会出现报错;
4.都导入单个类:

package Dome06;
import Dome05.Dome01;
import Dome.Dome01;
public class Dome02 {
	Dome01 d = new Dome01();

}

会出现报错,而报错的位置是import Dome.Dome01;
而Dome01 d = new Dome01();会显示为Dome05包里面的类;

所以,如果导入相同的java类,会优先选择先导入的,后面导入的会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值