Java培训SE基础之基本特征三 多态

曰:“白马非马,可乎?”

曰:“可。”

曰:“何哉?”

曰:“马者,所以命形也。白者,所以命色也。命色者,非命形也,故曰白马非马。”

Java培训

1 什么是多态

1. 本态

一个对象的本类形态就是本态.

2. 多态

一个对象的多种父类形态就是多态

2多态的使用

1. 多态引用

  将子类对象赋值于父类类型的引用变量就是多态引用, 在这里对象其实还是子类对象, 只不过是被看作是一个父类类型的对象.

Person person = new Student();

 

  • 多态性,是面向对象中最重要的概念,在java中有两种体现:
    1. 方法的重载(overload)和重写(overwrite)。
    2. 对象的多态性 ——可以直接应用在抽象类和接口上。
  • Java引用变量有两个类型:编译时类型运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。

 

注意:若编译时类型和运行时类型不一致,就出现多态(Polymorphism

 

2. 多态带来的问题

  • 一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法

      Student m = new Student();

      m.school = “pku”; //合法,Student类有school成员变量

      Person e = new Student();

      e.school = “pku”; //非法,Person类没有school成员变量

     属性是在编译时确定的,编译时e为Person类型,没有school成员变量,

因而编译错误。

想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训训课程视频供广大学员下载学习


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)