父类和子类定义了同名的属性当父类的引用指向子类的对象时,调用该对象的该属性,得到的是父类的属性?!!!

MissHannahDong 2012-09-04 08:51:30
class Test{

public static void main(String[] args){
First s = new Second();
System.out.println(s.var);
System.out.println(s.var);
}
}

class First {
int var =1;
int method(){
return var;
}
}

class Second extends First {
int var =2;
int method(){
return var;
}
}
...全文
528 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复


public class Good
{
String name = "good";

public String getName()
{
System.out.println("Good.getName");

return name;
}

}

public class Better extends Good
{
String name= "better";

public String getName()
{
System.out.println("Better.getName");

return name;
}

public static void main(String[] args)
{
Good g =new Better();

System.out.println(g.getName());

}

}
Console
Better.getName
better

2楼是对的
[Quote=引用 2 楼 的回复:]

不同意一楼的说法,在子类对父类的继承中,继承而来的只是方法,属性是继承不了父类的,不信的话可以写个例子打印出来验证一下就行了,其实想一下就会知道,方法是继承而来的,属性可以继承的话,那还要子类干嘛,直接就用父类就行了,子类继承方法是为了用父类的方法既有的规则来按照自己的需求完成特定的工作,这其中就包括使用自己的属性,所以一句话,属性是继承不了父类的
[/Quote]
龙四 2012-09-06
  • 打赏
  • 举报
回复
属性无多态一说
di_wq 2012-09-06
  • 打赏
  • 举报
回复
不同意一楼的说法,在子类对父类的继承中,继承而来的只是方法,属性是继承不了父类的,不信的话可以写个例子打印出来验证一下就行了,其实想一下就会知道,方法是继承而来的,属性可以继承的话,那还要子类干嘛,直接就用父类就行了,子类继承方法是为了用父类的方法既有的规则来按照自己的需求完成特定的工作,这其中就包括使用自己的属性,所以一句话,属性是继承不了父类的
狂奔的_蜗牛 2012-09-06
  • 打赏
  • 举报
回复
这是java、多态性的体现,父类的引用指向其子类的实现,如果子类的方法重写了父类的方法
则调用子类对象时,将执行子类的方法,方法可以覆盖 但属性是继承!

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧