构造函数内部的多态方法

时间:2014-08-01 09:22:43

标签: polymorphism

''为什么在这段代码中调用testSon类void display()方法而不是testFather类void display()

   class testFather  
     {  

        void display()  
        {  
                System.out.println("This is testFather class");   
        }  
        testFather()  //testFather constructor
        {  
            display();  
        }  

    }  

    class testSon extends testFather  
    {  

        void display()  
        {  

            System.out.println("This is testSon class ");  
        }  

        testSon()   //testSon class Constructor 
        {  
            int i=100;  
            System.out.println("This is cons of testSon class");  
        }  
    }  


    public class testConstructor   
    {  
       public static void main(String[] args)  
       {  
           testSon ts = new testSon();  
       }  
    }  

''输出:这是testSon类/ *为什么不是这是testFather类* /
          这是testSon类的缺点

1 个答案:

答案 0 :(得分:0)

您创建了一个testson对象。因此,它的构造函数被调用。如果你想调用父母也在构造函数中使用super()。如果这是我认为的java。

编辑:另一方面,您似乎没有在testSon构造函数中调用display()函数,而是在其中调用system.out.println。

您的代码:

 testSon()   //testSon class Constructor 
        {  
            int i=100;  
            System.out.println("This is cons of testSon class");  
        }