public class Duixiang
{
  public static void main(String[] args)
  {
  father c=new Son();    //这里是我比较模糊的地方
    c.print1();
  }
}
class Father
{
  void print1()
  {  
    System.out.println("father");
    
  }
}
class Son extends Father
{
  void print1()
  {
    System.out.println("son");
  }
}     
我主要对 
father c=new Son(); 这个语句比较模糊
因为以前学的都是
Son c=new Son();有哪位专业人士帮解释下吗?这样用有什么好处?

解决方案 »

  1.   

    Father c = new Son();
    父类引用指向子类对象,子类自动上溯造型到父类
    在所有父类出现的地方子类均可出现
    test(Father f)方法可以接受所有Father类及Father类的子类对象http://blog.csdn.net/yirentianran/archive/2008/04/25/2327349.aspx
      

  2.   

    这是多态的一种形式,c叫作son类对象的上转型对象。对象的上转型对象是通过父类的引用去调用被子类继承的方法(类方法除外),这样可以只声明一个父类的引用便可以调用所用继承它的子类的方法(继承的方法)。
      

  3.   

    public class Duixiang
    {
      public static void main(String[] args)
      {
      father c=new Son();    //这里是我比较模糊的地方
        c.print1();
      }
    }
    class Father
    {
      void print1()
      {  
        System.out.println("father");
        
      }
    }
    class Son extends Father
    {
      void print1()
      {
        System.out.println("son");
      }
    }楼上二位正解,是这个意思。
    我也刚刚学Java,前几天刚学到这里,以我的理解我跟你讲一下,引用一楼兄弟这段话
    Father c = new Son(); 
    父类引用指向子类对象,子类自动上溯造型到父类 这是多态的一种表现方式,Son类继承于Father,当“Son”类中的void print1()方法体被改变,那么Fathor类中的void print1()方法被覆盖。在不同的场合有不同的表现形式,多态的前提是,子类的方法,父类必须出现;个人意见,仅供参考。
      

  4.   

    是JAVA多态的一种体现!
    可以看看相关多态的知识!
      

  5.   

    子类的上传型对象,可以代替子类对象去调用子类重写的实例方法,也可以调用子类继承的成员变量和和隐藏的成员变量
    大家都知道java是没有指针的,我感觉这个功能就是类似于C++指针,可以用指向父类对象的指针去调用它子类对象的方法。
      

  6.   

    father c=new Son(); 这个语句比较模糊 
    因为以前学的都是 
    Son c=new Son(); 有哪位专业人士帮解释下吗?这样用有什么好处?多态的作用!
    这是对继承类的多态,不用考虑实现方法的手段,但却都可以办成事!