S2第三章

多态的优点

    1. 消除类型之间的耦合关系

    2. 可替换性

    3. 可扩充性

    4. 接口性

    5. 灵活性

    6. 简化性

多态存在的三个必要条件

   继承 ,重写,父类引用指向子类对象

    比如:



Parent p = new Child();

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

以下是一个多态实例的演示,详细说明请看注释:

Test.java 文件代码:

public class Test {
   public static void main ( String [ ] args ) {     
         show ( new Cat ( ) ) // 以 Cat 对象调用 show 方法   
         show ( new Dog ( ) ) // 以 Dog 对象调用 show 方法            
         Animal a = new Cat ( ) // 向上转型   
         a . eat ( ) ;               // 调用的是 Cat 的 eat   
         Cat c = ( Cat ) a ;        // 向下转型    
         c . work ( ) ;        // 调用的是 Cat 的 work
     }               
      public static void show ( Animal a )   {   
         a . eat ( ) ;          // 类型判断       
         if ( a instanceof Cat )   {   // 猫做的事情       
                 Cat c = ( Cat ) a ;        
                 c . work ( ) ;        
         } else if ( a instanceof Dog ) { // 狗做的事情     
           Dog c = ( Dog ) a ;        
           c . work ( ) ;        
          }     
     }
}
        abstract class Animal {   
           abstract void eat ( ) ;
     }   
         class Cat extends Animal {   
           public void eat ( ) {        
              System . out . println ( " 吃鱼 " ) ;  
   }    
      public void work ( ) {        
          System . out . println ( " 抓老鼠 " ) ;  
       }
}   
     class Dog extends Animal {   
        public void eat ( ) {      
        System . out . println ( " 吃骨头 " ) ;    
     }   
   public void work ( ) {       
        System . out . println ( " 看家 " ) ;    
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值