java中子类从父类继承来的方法,依然只对父类的成员变量操作,那这种继承还有什么作用?菜鸟请高手指教、

代码如下,运行结果看图:publicclassSup{Strings="超类:sup!";voidchange(){s="调用改变了!";}publicstaticvoi... 代码如下,运行结果看图:
public class Sup
{
String s = "超类:sup!";
void change()
{
s = "调用改变了!";
}
public static void main(String args[])
{
Sub sub = new Sub();
sub.change();
sub.show();
}
}
class Sub extends Sup
{
String s = "子类:sub!";
void show()
{
System.out.println("子类的s:" + s);
System.out.println("父类的s:" + super.s);
}
}
运行结果:
我的问题是:子类从父类继承了change方法,但是用子类对象调用change方法,而该方法却操作的是父类的成员变量(s),那我要改变子类的对象不就还要重写一个change方法,那用继承有啥用呢?有没有其它什么方法改变子类的成员变量s,不要说再写个方法什么的。是不是多态?如果是,又该怎样做?
展开
 我来答
wwwlanger100
推荐于2017-09-28 · 超过13用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:31.4万
展开全部
首先 你要明白每一个类都有一个构造器 当子类继承父类时 子类构造器会自动调用父类的构造器
及时你没写构造器 在编译时虚拟机会自动给你加个无参数构造器 如果你父类是有参数的构造器 那么虚拟机就不会给你加构造器 而且你String 是一个默认的变量 在子类当然能改变它的值 如果你把String 设为private 的 那么子类就不能改变它的值 就必须用 set方法来设置 get来获取
追问
我看我明白你的意思,我就是想知道java中有代码的重用,我就是想重用父类的change方法,以达到用该方法改变子类成员变量的目的,如果不能,那子类继承父类的成员仅仅只能对父类的成员变量进行操作,那还不如不继承耶,用子类的时候还要掉用父类的相应方法,还要用父类的成员变量,麻不麻烦嘛
追答
把父类的属性封装一下就可以重用了 就是把成员属性用private修饰 然后写set get方法就可以了呀
ppdaishu47
2012-10-19 · 超过12用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:37.3万
展开全部
  子类本来调用的就是父类自己的方法,在不覆盖的情况下除了递归调用和子类一毛钱关系都没有:
  写成这样你就明白了
  public class Sup {
  String d = "超类:sup!";
  void change() {
  d = "调用改变了!";
  }
  public static void main(String args[]) {
  Sub sub = new Sub();
  sub.change();
  sub.show();
  }
  }
  class Sub extends Sup {
  String s = "子类:sub!";
  void show() {
  System.out.println("子类的s:" + s);
  System.out.println("父类的s:" + super.d);
  }
  }

  
追问
这个原理我知道,我是想问在子类不重写父类方法,并且不新添加方法的情况下,让子类的s改变?
追答
  继承不是为了干这种事情的,继承,接口什么的主要是为了在子类有自己的私有特征的情况下,提供一个公共的抽象;提高内聚关系,增强代码的复用率.
  你这样就等于非要用Object里面的方法实现所有子类的私有特征?出发点就完完全全的反了,没有这么干的.
  说的比较白话,领会精神
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xueyunteng
2012-10-18
知道答主
回答量:63
采纳率:0%
帮助的人:23.1万
展开全部
确实是存在多态现象。就我个人目前所知,就只有重写
追问
不是吧,我觉得不可能只有重写,不然的话java太麻烦了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十年Dut
2018-12-16
知道答主
回答量:2
采纳率:0%
帮助的人:1688
展开全部
supper关键字,使用父类隐藏的变量和方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式