请教关于多态性的问题
											
程序代码:class Base
{
      public:
             Base(int i):a(i){}
             void Output(){printf("%d",a);}
      private:
              int a;
};
class Son : public Base
{
      public:
             Son(int i, int j):b(j),Base(i){};
             void Output(){printf("%d",b);}
      private:
             int b;
};
int main()
{
    Son S(1001,100);
    S.Output(); 
    getch();
    return 0;
}
输出是100,为什么,不是说基类不加虚函数标识符使用的是基类中的函数么?
此外,我用指针Son输出的是100,用指针Base输出的就是1001了
程序代码:int main()
{
    Son *p=new Son(1001,100);
        //Base *p=new Son(1001,100);
    p->Output(); 
    getch();
    return 0;
}										
					
	
											

	    