Java面向对象特征之一:多态

一 多态的特性

多态性,是面向对象中最重要的概念,在Java中的体现: 对象的多态性:父类的引用指向子类的对象

可以直接应用在抽象类和接口上

Java引用变量有两个类型:编译时类型运行时类型。编译时类型由声明 该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。简 称:编译时,看左边;运行时,看右边。

若编译时类型和运行时类型不一致,就出现了对象的多态性(Polymorphism)

多态情况下, “看左边” :看的是父类的引用(父类中不具备子类特有的方法) “看右边” :看的是子类的对象(实际运行的是子类重写父类的方法)

 二 多态存在的三个必要条件

  • 继承
  • 重写
  • 父类引用指向子类对象:Parent p = new Child();

三 多态注意点


1:多态情况下,子类中存在跟父类同名的成员变量时,访问的是父类的成员变量

2:多态情况下,子类中存在跟父类同名的非静态方法时,调用的是子类中的方法

3:多态情况下,子类中存在跟父类同名的静态方法时,访问的是父类中的方法

4:多态情况下,访问不到子类中特有的成员

 四 虚拟方法调用

虚函数的存在是为了多态。

Java 中其实没有虚函数的概念,它的普通函数就相当于 C++ 的虚函数,动态绑定是Java的默认行为。如果 Java 中不希望某个函数具有虚函数特性,可以加上 final 关键字变成非虚函数。

 五 多态的实现方式

方式一:重写:

方式二:接口

  • 1. 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。

  • 2. java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。

方式三:抽象类和抽象方法

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值