Java基础——继承和实现对类中字段的影响
来源:互联网 发布:pssproject监控软件 编辑:程序博客网 时间:2024/06/08 11:22
//父类public class Super{ public static int A = 111; public void test(){ System.out.println("super method"); }}//子类,继承并实现一个接口public class Sub extends Super implements Inter2{ public static int A = 222;}//接口interface Inter2{ static int A = 1; void test();}//调用public static void main(String[] args) { Sub sub = new Sub(); sub.test(); System.out.println(Sub.A);}
- Sub中可以不用实现test(),因为继承的Super中有test(),会调用父类的test();
- 如果注释掉Sub中的“public static int A = 222;”,会出现编译错误“The field Sub.A is ambiguous”,意思是Sub.A是模糊的,这是由于Sub本身没有字段A,于是编译器去找父类或实现的接口中是否有匹配的字段A,结果发现父类Super和接口Inter2中都有A,所以无法判断字段A是父类Super中的A还是接口Inter2的A。
如果将Super的字段A和接口Inter2的字段A注释掉,然后Super实现Inter接口,Inter如下:
interface Inter{ static int A = 0;}
main方法中的“System.out.println(Sub.A);”并不会报错,因为编译器在直接父类和实现接口中找不到A后,会继续向直接父类的实现接口或父类继续找,也会向实现接口的父接口找,所以,Sub会找到父类Super实现的接口Inter中的A,编译不出错。
总结:
一个类的字段就是按照这样的顺序查找,先查自己有没有,如果没有,再查父类和接口,依次向上,但是如果两个没有关联,也就是没有连线的类或接口都有所查的字段,那么就会报编译错误“The field Sub.A is ambiguous”。
阅读全文
0 0
- Java基础——继承和实现对类中字段的影响
- 参数类型对java用继承实现多态时的影响
- java中序列化对继承的影响
- 【MySQL基础】MySQL关于load对auto_increment字段的影响
- 继承、 虚继承和虚函数表对类的大小的影响
- c++与Java中继承关系对成员访问权限的影响之比较
- 分区表中GLO字段对信息收集的影响
- C++中继承方式对访控属性的影响
- 虚继承和虚函数对sizeof的影响
- 虚函数和虚继承对sizeof的影响
- c++笔记06---继承,公有继承,继承方式对访控属性的影响,私有继承和保护继承
- virtual属性对类继承的影响---学习笔记
- java 中子类如何实现对父类私有域的继承
- 增加字段,对原有记录的影响
- mysql字段对索引的影响
- 索引字段顺序对效率的影响
- 字段数据类型对索引的影响测试
- java基础-finally块对return变量的影响分析
- 编写词法分析器有感~~~
- Linux中基础笔记(必备知识)包含常用指令以及tomcat搭建 系列3
- HashMap 的源码分析
- 在安防领域如此“受宠”的POE交换机到底该怎么选?
- LineNumberReader读取文件的行数
- Java基础——继承和实现对类中字段的影响
- Linux中基础笔记(必备知识)包含常用指令以及tomcat搭建 系列4
- 软考下午考试的攻略
- 纪念碑谷附录一(深坑)
- 值对象操作
- Data Augmentation.
- 223. Rectangle Area
- python实现图的深度优先搜索和广度优先搜索
- LuoguP1038[NOIP2003] 神经网络 解题报告【拓扑排序+DP/递推】