java继承,新手求教

qq_17049875 2014-09-03 09:26:50
怎么才能实现,我继承父类的方法,然后去用这个方法去访问子类的对象呢?我有子类,他们都有一个方法,shot()。我继承父类之后,能不能不重写父类的方法,而直接调用shot()方法,来输出子类的属性呢?求大神

class A
{
int a = 1;
void shot()
{
System.out.println(a);
}
}

class B extends A
{
int a =2;
}

class C
{
public static void main(String[] args)
{
B b = new B();
b.shot();
}
}


...全文
252 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chanamper 2014-09-04
  • 打赏
  • 举报
回复
你子类没有对父类方法进行重写,其实调用时还是在使用父类的方法和属性。
scott_129 2014-09-04
  • 打赏
  • 举报
回复
你的子类没有重写父类的方法,所以调用的父类的方法,此时当然调用也是父类的属性啦。 你追问的那个问题,你有很多方法要用到price这个属性,而你的父类里面有的话,你是不需要重复写的。你在父类里面提供一个set/get方法对,就可以了。那样只要调用父类的get/set方法就能进行取值/赋值了。
anakin_feng 2014-09-04
  • 打赏
  • 举报
回复
继承之后,属性并不会被重写的啊,你这肯定输不出来。直接调用子类的属性,还真不好搞,子类调用父类可以用super,但是这个也有权限问题
  • 打赏
  • 举报
回复
super 和 this
woshiliubei3 2014-09-03
  • 打赏
  • 举报
回复
属性的不同值应该在不同子类实例化的时候确定,而不是在定义子类的时候确定
victorHaoJ 2014-09-03
  • 打赏
  • 举报
回复
你可以在父类中提供public getPrice方法,这就是Java的封装性。
qq_17049875 2014-09-03
  • 打赏
  • 举报
回复
那我如果有一堆类要返回private int prince 的变量,我要写很多 getPrice(){}函数了 然后通过接口使用 只能在程序中写一大堆重复的代码了吗?
qq_17049875 2014-09-03
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
方法可以继承、覆盖,属性只能继承、不能覆盖,覆盖了父类属性之后,实际上是与父类不同的属性,在内存中占用的是不同的地址。 所以你这里输出的依然是父类的属性。
我有一个类 汽车 有价格 载重 名称 这些属性 我创建它的子类 也有这些属性 我只能定义方法,去覆盖父类的方法 但我无法在子类中为这些属性赋值对吗? 也就是说 ,继承只适用于方法,而不是属性? 类的概念也就是有同一类方法,而不是同一类属性的集合吗?
victorHaoJ 2014-09-03
  • 打赏
  • 举报
回复
据我了解是不行的,Java中的多态只针对方法,不针对 变量。
rumlee 2014-09-03
  • 打赏
  • 举报
回复
方法可以继承、覆盖,属性只能继承、不能覆盖,覆盖了父类属性之后,实际上是与父类不同的属性,在内存中占用的是不同的地址。 所以你这里输出的依然是父类的属性。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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