黑马程序员-Java基础07

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

多态:多种形态

1对象的多态性(类型提升,子类对象为父类型)
(提升的好处:提高了扩展性,隐藏子类型。提升的局限性:只能使用父类中的方法。如果子类有覆盖的话,运行的事子类的内容)
class 猫 extends 动物{}
class 动物{}
猫 cat=new 猫();
动物 cat=new 猫();(猫这个实例具备着两种形态,一个是猫另一个是动物。这就是多态性)
多态在程序中的体现:父类或者接口的引用指向了自己的子类对象。(父类型指向子类的对象)
2.多态的前提:
(1)必须有继承或者实现的关系
(2)通常都有覆盖的操作
3.多态的好处:提高了程序的扩展性,在思想上也有不同,以前是面对一个对象调用,对象多了调用麻烦。
              相当于指挥一批对象做事情,将复杂的事情简单化。
 多态的弊端:多态的出现,虽然可以让前期的程序使用后期的内容。
         不可以使用子类的特有内容。
注意:对于子父类类型转换动作,自始至终都是子类对象在做类型的转换而已。
4.向下转型需要注意:父类型向下转成子类型,因为子类型不唯一,所以需要进行判断。
用到的关键字是 instanceof:对象 instanceof 类型
Animal an=new Cat();
if(an instanceof Cat)
{
    Cat c=(Cat)an;
    c.猫中特有的方法;
}else if(an instanceof Dog)
{
    Dog d=(Dog)an;
    d.狗中特有的方法;
}
5.多态中的特点:
(1)成员变量:多态调用时,对于成员变量,无论是编译还是运行,结果只参考引用型变量所属的类中的成员变量。(参考等号左边)
(2)成员函数:多态调用时,对于成员函数,编译时参考引用型变量所属类中是否有被调用的方法,有,编译通过,没有,
        编译失败。运行时,参考的事对象所属的类中是否有调用的方法。(编译看左边,运行看右边)
(3)静态函数:多态调用时,编译和运行都看左边。
六、Object:所有类的超类
        所有对象都具备的方法定义在该类中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值