黑马程序员技术交流社区
标题:
父类和接口中有同名的属性,访问时报错
[打印本页]
作者:
匡文
时间:
2013-10-17 23:38
标题:
父类和接口中有同名的属性,访问时报错
本帖最后由 匡文 于 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?
作者:
風諾
时间:
2013-10-17 23:43
本帖最后由 風諾 于 2013-10-17 23:45 编辑
你的铅笔和橡皮有仇,一个写一个擦,不合作!
哈哈,开个玩笑
建立对象时,用多态的特性
Pencil pe = new PencilEras();就可以访问父类name了
作者:
匡文
时间:
2013-10-18 00:29
風諾 发表于 2013-10-17 23:43
你的铅笔和橡皮有仇,一个写一个擦,不合作!
哈哈,开个玩笑
谢谢!看来我还没有完全消化多态:lol,要好好学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2