多态的表现形式

17 篇文章 0 订阅

有两种主要体现:
  1、方法的重载和覆盖 
  a)、重载

public void show(int a)
{
     cout<<a<<endl;
}

public void show(string b)
{
     cout<<b<<endl;
}

  b)、覆盖

 class A{                    // 定义类A
     public void fun1(){        // 定义fun1()方法
     }
     public void fun2(){
     }
 };
 class B extends A{
     public void fun1(){        // 此方法被子类覆写了
     }
     public void fun3(){
     }
 };
 public class Pol{
     public static void main(String asrgs[]){
         B b = new B() ;        // 实例化子类对象
         A a = b ;            // 向上转型关系
         a.fun1() ;            // 此方法被子类覆写过
         a.fun3() ;
     };

2、对象的多态性(向上转型和向下转型)
  a)、向上转型

 class A{                    // 定义类A
     public void fun1(){        // 定义fun1()方法
     }
     public void fun2(){
     }
 };
 class B extends A{
     public void fun1(){        // 此方法被子类覆写了
     }
     public void fun3(){
     }
 };
 public class Pol{
     public static void main(String asrgs[]){
         B b = new B() ;        // 实例化子类对象
         A a = b ;            // 向上转型关系
         a.fun1() ;            // 此方法被子类覆写过
         a.fun3() ;
     }
 }

b)、向下转型

 class A{                    // 定义类A
     public void fun1(){        // 定义fun1()方法
     }
     public void fun2(){
     }
 }
 class B extends A{
     public void fun1(){        // 此方法被子类覆写了
     }
     public void fun3(){
     }
 }
 public class Pol{
     public static void main(String asrgs[]){
         A a = new A() ;            // 实例化了一个父类对象
         B b = (B)a ;        // 发生了向下转型关系
         b.fun1() ;
         b.fun2() ;
         b.fun3() ;
     }
 }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值