A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo {
String s = "Outer";
public static void main (String[] args) {
S2 s2 = new S2();
s2.display();
}
}
class S1 {
String s = "S1";
public void display(){
System.out.println(s);
}
}
class S2 extends S1 {
String s = "S2";
}  

这题答案是S1  因为·继承,子对象里面有两个s,一个是父类的,一个是子类的,怎么确定,怎么去理解,赢比喻最好啦

22 个回复

倒序浏览
答案为什么是S1而不是S2
回复 使用道具 举报
路过,赞赞赞
回复 使用道具 举报

又来水。。。。。。。
回复 使用道具 举报
看一下多态,对成员变量编译看父类,运行看父类,对成员方法编译看父类,运行看子类(动态绑定),应该是酱紫
回复 使用道具 举报
隔壁马良 发表于 2015-11-22 23:20
看一下多态,对成员变量编译看父类,运行看父类,对成员方法编译看父类,运行看子类(动态绑定),应该是酱 ...

这里好像没有多态哦  是直接建立子类对象  我觉得还是就近原则  好理解一点
回复 使用道具 举报
...洗洗睡吧, 调的子方法
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-11-23 00:18
...洗洗睡吧, 调的子方法

什么意思啊大神,,真心有点绕的  按照就近原则?虚拟机去轮流找方法,然后轮流找要访问的东西吗?也就是就近原则吗?  可以理解为, 继承只是一种字父类关系,因为他们这种关系,所以父类数据子类可以用?
回复 使用道具 举报
他本身(子类)没有dipaly方法, 所以调用父类的 dispaly方法,输出的是S1
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-11-23 00:41
他本身(子类)没有dipaly方法, 所以调用父类的 dispaly方法,输出的是S1

所以继承意思是,子类没有的东西去父类找,因为他们之间存在继承关系,而并不是把它继承过来吗
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-11-23 00:41
他本身(子类)没有dipaly方法, 所以调用父类的 dispaly方法,输出的是S1

我开始一致理解为,父类的东西继承过来,其实应该准确理解为,父类的东西,子类可以用吗
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-11-23 00:41
他本身(子类)没有dipaly方法, 所以调用父类的 dispaly方法,输出的是S1

哦  不对  应该是  父类那个方法想表达的意思是输出父类数据,你继承把方法拿过来,当然也得输出父类的东西,是不是这个意思,要尊重父类方法想表达的意思
回复 使用道具 举报
形象的例子说明最好了!
回复 使用道具 举报
子类调用父类函数输出一个s,s的值子类里重新赋值了,你new的是子类,用的就是子类的值。
回复 使用道具 举报
夕风秋凉 发表于 2015-11-23 00:47
所以继承意思是,子类没有的东西去父类找,因为他们之间存在继承关系,而并不是把它继承过来吗 ...

所谓的继承,就是自己没有就拿老爹的没有被私有的,
回复 使用道具 举报
本帖最后由 lovetonia 于 2015-11-24 06:57 编辑

不继承也没多态,成员变量就是爸爸的身高,只要不是喜当爹,矮爹生不出高儿子
回复 使用道具 举报
lovetonia 发表于 2015-11-24 06:56
不继承也没多态,成员变量就是爸爸的身高,只要不是喜当爹,矮爹生不出高儿子 ...

6             {:2_30:}
回复 使用道具 举报
Camwly 中级黑马 2015-11-25 09:33:39
18#
看不懂呢
回复 使用道具 举报
夕风秋凉 发表于 2015-11-23 00:48
我开始一致理解为,父类的东西继承过来,其实应该准确理解为,父类的东西,子类可以用吗 ...

部分是可以的.  但是私有化的不可以, 因为被继承不了.  部分方法是继承的/
回复 使用道具 举报
oup 中级黑马 2015-11-25 23:31:56
20#
还真没意识到这个问题啊
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马