java中父类对象对子类对象的应用有什么好处

 我来答
I_冰_I
2012-07-14 · TA获得超过322个赞
知道答主
回答量:86
采纳率:0%
帮助的人:30.5万
展开全部
 class Test {
  public static void main(String[] args) {
  superA a = new superA();
  subB b = new subB();
  subC c = new subC();
  a = b;
  a.fun(100);
  a = c;
  a.fun(200);
  }
  }
  /*
  * 上述代码中subB和subC是超类superA的子类,我们在类Test中声明了3个引用变量a, b,
  * c,通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。也许有人会问:
  * "为什么(1)和(2)不输出:This is superA"。
  * java的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,
  * 被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,
  * 但是这个被调用的方法必须是在超类中定义过的,
  * 也就是说被子类覆盖的方法。
  * 所以,不要被上例中(1)和(2)所迷惑,虽然写成a.fun(),但是由于(1)中的a被b赋值,
  * 指向了子类subB的一个实例,因而(1)所调用的fun()实际上是子类subB的成员方法fun(),
  * 它覆盖了超类superA的成员方法fun();同样(2)调用的是子类subC的成员方法fun()。
  * 另外,如果子类继承的超类是一个抽象类,虽然抽象类不能通过new操作符实例化,
  * 但是可以创建抽象类的对象引用指向子类对象,以实现运行时多态性。具体的实现方法同上例。
  * 不过,抽象类的子类必须覆盖实现超类中的所有的抽象方法,
  * 否则子类必须被abstract修饰符修饰,当然也就不能被实例化了
  */
  以上大多数是以子类覆盖父类的方法实现多态.下面是另一种实现多态的方法-----------重写父类方法
  1.JAVA里没有多继承,一个类之能有一个父类。而继承的表现就是多态。一个父类可以有多个子类,而在子类里可以重写父类的方法(例如方法print()),这样每个子类里重写的代码不一样,自然表现形式就不一样。这样用父类的变量去引用不同的子类,在调用这个相同的方法print()的时候得到的结果和表现形式就不一样了,这就是多态,相同的消息(也就是调用相同的方法)会有不同的结果。举例说明:
  //父类
  public class Father{
  //父类有一个打孩子方法
  public void hitChild(){
  }
  }
  //子类1
  public class Son1 extends Father{
  //重写父类打孩子方法
  public void hitChild(){
  System.out.println("为什么打我?我做错什么了!");
  }
  }
  //子类2
  public class Son2 extends Father{
  //重写父类打孩子方法
  public void hitChild(){
  System.out.println("我知道错了,别打了!");
  }
  }
  //子类3
  public class Son3 extends Father{
  //重写父类打孩子方法
  public void hitChild(){
  System.out.println("我跑,你打不着!");
  }
  }
  //测试类
  public class Test{
  public static void main(String args[]){
  Father father;
  father = new Son1();
  father.hitChild();
  father = new Son2();
  father.hitChild();
  father = new Son3();
  father.hitChild();
  }
  }
  都调用了相同的方法,出现了不同的结果!这就是多态的表现!
mastpk
2012-07-14
知道答主
回答量:49
采纳率:0%
帮助的人:22.7万
展开全部
重载,多态,重写方法,继承这些就是面向对象得编成,在代码中抽取重复代码变为父类等等。好处多了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fa82f1dd6
2012-07-14 · 超过29用户采纳过TA的回答
知道答主
回答量:155
采纳率:0%
帮助的人:76.2万
展开全部
加强了代码的重用性,也就是我们少写了很多的重复代码。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悲催的动感超人
2012-07-14 · 超过17用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:47.2万
展开全部
可重用性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式