java的多态和c++的多态

本文探讨了C++中多态性的实现原理及其应用。通过具体示例代码展示了如何使用虚函数来实现运行时多态,并解释了父类指针或引用调用虚函数时的具体行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 class A{
         int a;
      public:
          virtual void show()=0;
         //void show(){
           //   cout<<"父类show"<<endl;
        // }
           void out(){
               cout<<"父类输出"<<endl;
          }
      };
      class B :public A{
          int b;
      public:

         void show(){
         cout<<"显示子类"<<endl;
         }
         void out(){
             cout<<"子类输出"<<endl;
         }
     };
      void show(A&s){
          s.show();//调用的是子类的方法
         s.out();//原意是调用子类的方法,结果显示调用的是父类的方法,那s是不是父类的实例化?
      }
      int main()
      {
      //  A a;//抽象类不能建立对象
         B b;
         show(b);
         b.out();
         B b2;
         //A *ap;
         A &ap=b2;
        // ap=b2;
        ap.out();
         system("pause");
      }

多态的特征:
        父类的指针可以指向子类的对象
        通过父类指针只能调用父类中声明的方法
        通过指针调用函数的时候,若函数是个虚函数,表现出来的行为是对象自身的行为
            
产生多态:(1)指针
             (2)引用
   父类的引用可以引用一个子类对象
   通过父类引用只能调用父类函数
   调用一个父类被覆盖了的,虚函数,能调用子类的函数

还是java的多态更好理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值