Day08第八天java基础-----------多态

    ------- android培训java培训、期待与您交流! ----------


1、多态:
             可以理解为事物不同的表现形态。
             表现形态:父类引用指向自己的子类对象。
             也可以理解为父类接受自己的子类对象
 class DemoA
 {
              void show()
              {
                                  //方法体中的内容
               }
              void show()1
               {
                                 //父类中没有被覆写的方法
               }

 }
 class DemoB extends DemoA
 {
                 void show()
                  {
                                  //方法体中的内容。
                  }
                 public static void main(String args[])
                 {
                                DemoA a = new DemoB();//父类的引用指向自己的子类对象
                                a.show(); //调用父类中被子类覆写的方法
                                a.show1();//调用父类中没有被子类覆写的方法
                  }
 }
2、多态的前提:
 必须是类与类之间有关系,要么继承,要么实现。通常还存在一个前提就是覆盖。
3.利与弊:
 好处:大大的提高了扩展性。
 弊处:提高了扩展性,但是只能用父类的引用访问父类的成员,也就是说,只能是继承了父类才能
 访问并覆写父类中的方法。
4、前期调用功能,后期定义子类实现功能,并把子类作为参数传递进来
5、向上转型和向下转型:

 类型的提升:向上转型,转成父类
 向下转型:也就是说如果想用子类中特有的功能必须进行强制的转换,把父类的引用强制转换成
 子类的类型:
 代码如下:
 class Animal
{
                       void eat()

                       { 

                                           // 定义一个吃的方法

                        }
 }
 class Mao extends Animal{
                            void eat(){
                                     System.out.println("猫吃鱼");  // 继承了父类中的方法并覆写了方法
                               }
                            void catchMouse(){
                                     System.out.println("猫抓老鼠");//子类的特有方法
                              }
 }
 class Demo{
              public static void main(String args[]){
                         Animal a = new Mao();//父类的引用指向了自己的子类对象
                         a.eat(); //调用子类中被覆写的方法
                         Mao m = (Mao)a;// 是把父类的引用强制的转换成了子类类型
                         m.catchMouse();// 输出了子类中特有的方法
                       } 
 }
6、多态的应用:
               在多态中函数成员的特点:函数成员的特点是非静态的。
             (1)、编译时参阅引用类型所属的类中是否调用有方法(也就是说父类中是否有方法被子类所重写)
             (2)、运行时参阅对象所属的类中是否有调用方法。
 也就是说编译时看左边,运行时看右边。
7、在多态中成员变量的特点:

              无论编译和运行时都参考左边(引用类型所属的类)
8、注意一个异常:”classcastException“:是类型转换异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值