1.多态:是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

多态性是对象多种表现形式的体现。

2.多态作用:

  • 1. 消除类型之间的耦合关系
  • 2. 可替换性
  • 3. 可扩充性
  • 4. 接口性
  • 5. 灵活性
  • 6. 简化性

3.多态的三个必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象

4.多态处理属性

父类有,子类也有,获取的是父类的属性

         父类有,子类没有,获取的是父类的属性

         父类没有,子类有,获取不到

         父类没有,子类没有,获取不到

注意:编译看左边,运行看左边

编译器编译完成之后,类型确定,但是对象无法确定,只有在运行的时候,new什么对象,就是什么对象

5.多态处理方法

父类有,子类也有,获取的是子类的方法 (方法重写)

           父类有,子类没有,获取的是父类的方法

           父类没有,子类有,获取不到

           父类没有,子类没有,获取不到

注意:编译看左边,运行看右边  (方法重写)

6.多态的体现形式:

向上转型:父类的引用指向子类的对象

父 f = new 子();

向下转型:把父类引用执行的子类对象强制转为子类类型

子 z = (子)f;

注意:无论是基本类型还是引用类型,小转大都是自动的,大转小都是强制的,

       注意:类型越抽象,功能越少,类型越具体,功能越强大

       注意:引用类型之间做转换,必须要有继承关系

7.类型转换

   (1):自动转换   向上转型

     子类对象转为父类类型

语法: 父类 父类对象 = 子类实例,

   (2):强制转换   向下转型

     把父类引用子类的对象转为子类本身(父类对象变为子类对象,

语法: 子类 子类对象 = (子类)父类实例,强制

 实际开发中,多态很常用,创建子类对象,尽量使用多态来创建,可以提高代码的灵活性和扩展性

说明:利用封装,继承,多态的知识写一个Java程序

 题目要求:

编写程序实现比萨制作。需求说明编写程序,接收用户输入的信息,选择需要制作的比萨。可供选择的比萨有:培根比萨和海鲜比萨。

实现思路及关键代码

(1)分析培根比萨和海鲜比萨

(2)定义比萨类

(3)属性:名称、价格、大小

(4)方法:展示

(5)定义培根比萨和海鲜比萨继承自比萨类

(6)定义比萨工厂类,根据输入信息产生具体的比萨对象

最新文章

  1. STM32之位绑定
  2. npm -v 一直闪
  3. Codeforces Round #336 (Div. 2)
  4. array_sum函数 number array_sum
  5. console.log的一个应用 -----用new方法生成一个img对象和document.createElement方法创建一个img对象的区别
  6. Centos6 源代码部署MySQL5.6
  7. GZIP 头解析
  8. 关于ajax发送的数据问题
  9. Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容
  10. Solr 02 - 最详细的solrconfig.xml配置文件解读
  11. Docker安装nexus
  12. mysql8.0.11绿色版安装教程
  13. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛----随手记录帖
  14. python-面向对象-08_多态
  15. ASE加解密算法详细介绍
  16. php 代码编写规范
  17. iOS开发之解决WebView自适应内容高度
  18. 提高python执行效率的方法
  19. PostgreSQL on Linux 最佳部署手册
  20. Mysql 中文中繁杂的字 插入报错的 解决方案

热门文章

  1. google breakpad for linux(2)
  2. time clock getrusage clock_gettime gettimeofday timespec_get 对比
  3. mybatis-spring集成:配置多数据库源中遇到的问题
  4. SQL面试题之行转列
  5. 01-01java概述 doc命令、jdk\jre下载安装、path、classpath配置、开发中常见小问题
  6. widows本地-xshell实现远程连接linux服务器图形界面
  7. sql server 2012 复制数据库向导出现TransferDatabasesUsingSMOTransfer()异常
  8. JMP地址公式推导
  9. 计算机网络 之 TCP协议报文结构
  10. Android 开发工具类 34_OpenFileUtil