本帖最后由 匡文 于 2013-10-18 00:30 编辑
今天跟同学讨论遇到一个问题,请教一下坛子里的各位前辈
代码如下- class Pencil{
- String name = "Pencil";
- }
- interface Erase{
- String name = "Erase";
- }
- class PencilEras extends Pencil implements Erase{
- }
- class Demo8{
- public static void main(String[] args){
- PencilEras pe = new PencilEras();
- System.out.println(pe.name);
- }
- }
复制代码 编译报错:
Demo8.java:16: 错误: 对name的引用不明确, Pencil中的变量 name和Erase中的变量 name
都匹配
System.out.println(pe.name);
^
1 个错误
也就是接口和父类有同名的成员变量,用pe.name调用时就会如上错误。但是如果我不调用pe.name,编译不会报错,也就是说,这种继承方式语法上没有问题,而且测试到可以通过Erase.name来调用到接口的这个变量,但是不知道如何才能调用到父类的name?
|