JVM——虚拟机类加载机制——字段解析

本文通过一个具体的Java示例说明了当子类继承父类并实现多个接口时,如果这些接口及父类中存在同名静态字段,如何解决字段冲突的问题。文章详细解释了Java编译器在面对此类冲突时的行为,并提供了避免编译失败的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果一个同名字段同时出现在C的接口和父类中,
或者同时出现在自己或父类的多个接口中出现,那么编译器将可能拒绝编译。

 

package jvm;
/** 
 * @author wyl
 * @time 2018年7月21日上午10:08:56
 */
public class Test1 {

	interface Interface0{
		int A=0;
	}
	
	interface Interface1 extends Interface0{
		int A=1;
	}
	
	interface interface2{
		int A=2;
	}
	
	static class  Parent implements interface2{
		public static int A=3;
	}
	
	static class Sub extends Parent implements interface2{
		public static int A=4;
		//如果注掉该句,会出现错误,The field Test1.Sub.A is ambiguous
		//如果一个同名字段同时出现在C的接口和父类中,
		//或者同时出现在自己或父类的多个接口中出现,那么编译器将可能拒绝编译。
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(Test1.Sub.A);
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baymax_wyl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值