当前位置: 首页 > news >正文

Java—多态

目录

1、认识多态       

2、多态的好处和存在的问题

2.1使用多态的好处

2.2多态存在的问题

3、多态下的类型转换

4、综合案例—支付模块


1、认识多态       

         多态是在继承/实现下的一种现象,表现为:对象多态,行为多态。

对象多态

  • 对象多态是面向对象编程中的重要概念,允许父类引用指向子类对象
  • 语法形式:Animal a1 = new Wolf();例如下面代码就是对象多态。

行为多态

  • 行为多态是面向对象编程中的核心概念,指的是同一个方法调用在不同对象上表现出不同的行为。

Animal 类

public class Animal {String name = "动物";public void run(){System.out.println("动物会跑~~~");}
}

Wolf 类

public class Wolf extends Animal{String name = "狼";@Overridepublic void run(){System.out.println("狼跑的贼快~~~");}
}

Tortoise 类

public class Tortoise extends Animal {String name = "乌龟";@Overridepublic void run(){System.out.println("乌龟跑得慢");}
}

Test类:测试类

public class Test {public static void main(String[] args) {//1、对象多态,行为多态Animal a1 = new Wolf();Animal a2 = new Tortoise();a1.run();//编译看左边,运行看右边。编译看Animal运行看 Wolfa2.run();//编译看左边,运行看右边System.out.println(a1.name);//成员变量,编译看左边,运行看左边System.out.println(a2.name);//成员变量,编译看左边,运行看左边}
}
/*
输出结果:
狼跑的贼快~~~
乌龟跑得慢
动物
动物*/

2、多态的好处和存在的问题

2.1使用多态的好处

  • 好处1:在多态形式下,右边对象是解耦合的,更便于扩展和维护。

        解耦合的概念:解耦合是指降低软件组件之间的依赖关系,使各个模块尽可能独立,减少相互影响

  • 好处2:定义方法时:使用父类类型的形参,可以接收一切子类对象、扩展性强更便利。

2.2多态存在的问题

  • 多态下不能使用子类的独立功能。

3、多态下的类型转换

        上面提到在多态下不能使用子类的独立功能,那么怎么解决这个问题呢?使用多态的强制类型转换。

Animal 类

public class Animal {String name = "动物";public void run(){System.out.println("动物会跑~~~");}
}

Tortoise 类

public class Tortoise extends Animal {String name = "乌龟";@Overridepublic void run(){System.out.println("乌龟跑得慢");}
}

Wolf 类

public class Wolf extends Animal{String name = "狼";@Overridepublic void run(){System.out.println("狼跑的贼快~~~");}//这里是子类狼的独有功能public void eat(){System.out.println("狼吃羊~~~");}
}

Test类:测试类

public class Test {public static void main(String[] args) {//1、对象多态,行为多态Animal a1 = new Wolf();  //狼Animal a2 = new Tortoise();a1.run();//编译看左边,运行看右边。编译看Animal运行看 Wolfa2.run();//编译看左边,运行看右边System.out.println(a1.name);//成员变量,编译看左边,运行看左边System.out.println(a2.name);//成员变量,编译看左边,运行看左边print(a1);}public static void print(Animal a){  //这里形参传入方式是多太多的第二个好处。//如果在这里直接调用子类狼的独有的方法/行为//a.eat();  //报错//解决上面调用多态调用子类独立方法报错的问题://强制类型转换,但是要注意的是,强制类型转换可能会出错,如果把不是狼的对象转换成狼对象,就会出错//所以一般多态强制类型转换的时候会加关键字 "instanceof"做判断System.out.println("----开始------");if(a instanceof Wolf){Wolf w = (Wolf)a;w.eat();} else if (a instanceof Tortoise) {Tortoise t = (Tortoise)a;}}
}/*
输出结果:
狼跑的贼快~~~
乌龟跑得慢
动物
动物
----开始------
狼吃羊~~~*/

4、综合案例—支付模块

http://www.dtcms.com/a/530236.html

相关文章:

  • 博客网站搭建中工信融网站建设
  • 织梦网站维护工商网企业信息查询系统营业执照
  • 做企业网站的研究现状祥云网站建设公司 概况
  • 现在的网站使用frameset做吗天津建设工程招标网
  • 20252803-动态库的使用-openssl
  • 网站建设平台哪个好推广产品的方式有哪些
  • 制作网站的花多少钱一级a做爰片2017免费网站
  • 怎样创建网站教程网站主机多少钱
  • 湘潭网站建设优选磐石网络网页翻译网站
  • 网站建设企业 熊账号如何制作wordpress主题
  • 27_AI智能体提示词工程之动态加载情感分析提示词模板的最佳实践
  • Windows 中启动 ms office 报错0xc0000142
  • 红河学院网站建设北京造价信息网官网
  • 网站安全查询系统潍坊网站建设工作室
  • 系统网站怎么做wordpress兼容html5
  • 中国桥梁建设网站做爰视频免费的网站
  • S30-西门子1517H-3PN配置简介
  • 婚礼策划网站设计Wordpress企业主题XShuan
  • 邯郸网站优化怎么做三种制作方式的比较
  • Python 部署安卓应用——弃坑指南(却退)
  • 营销加盟网站建设wordpress页面链接地址
  • 做网站一年了 做个小总结wordpress博客常用插件
  • 网站建设辶金手指排名十三黑龙江建设局官网
  • 做分享衣服网站的初衷是什么意思seo神马网站推广器
  • 地方门户网站系统建设方案新能源汽车价格趋势
  • 【Linux】操作系统进程概念
  • 网站建设方案的征求意见ppt模板免费下载整套
  • 论坛类网站可以做移动端吗手机编程软件中文版免费
  • 南京城乡住房建设厅网站胶州为企业做网站的公司
  • 二七区做网站做电影网站如何盈利