Java面向对象特征:多态性

多态性

  • 多态性,是面向对象中最重要的概念,在Java中有两种表现:
    1. 方法的重载(overload)和重写(overwrite)
    2. 对象的多态性–可以直接应用在抽象类和接口上。
  • 多态出现
    • 前提
      • 需要存在继承或者实现关系
      • 要有覆盖操作
    • 成员方法
      • 编译时类型:由声明该变量时使用的类型决定,要查看引用变量所属的类中是否有调用的方法。
      • 运行时类型:由实际赋给该变量的对象决定,调用时机对象所属的类中的重写方法。
        若编译时类型和运行时类型不一致,就会出现多态(Polymorphism)。
    • 成员变量
      • 不具备多态性,只看引用变量所属的类。
  • 对象的多态
    在Java中,子类的对象可以代替父类的对象使用
    • 一个变量只能有一种确定的数据类型
    • 一个引用类型变量可能指向(引用)多种不同类型的对象
    • 子类可以看作是特殊的父类,所以父类类型的引用可以指向子类的对象:向上转型
    • 一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法
    • 若子类重写类父类方法,就意味着子类里定义的方法彻底覆盖了父类里的同名方法,系统将不可能把父类里的方法转移到子类中。
    • 对于实例变量不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,这个实例变量依然不可能覆盖父类中定义的实例变量
  • instanceof操作符
    x instanceof A:检验x是否为类A的对象,返回值为boolean型
    • 要求x所属的类与类A必须是子类和父类的关系,否则编译错误
    • 如果x属于A的子类B,x instanceof A值也为true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值