Java 多态性的使用
1 package com.bytezreo.duotai3;
2
3 /***
4 *
5 * @Description 练习多态性的使用
6 * @author Bytezero·zhenglei! Email:420498246@qq.com
7 * @version
8 * @date 2021年9月24日上午8:46:24
9 * @
10 * 编写 equalsArea 方法测试两个对象的面积是否相等(注意方法的参数类型,利用动态绑定技术)
11 * 编写 displayGeometricObject方法显示对象的面积(注意方法的参数类型,利用动态绑定技术)
12 *
13 *
14 */
15 public class GeometricTest
16 {
17 public static void main(String[] args)
18 {
19 GeometricTest test = new GeometricTest();
20
21 Circle c1 = new Circle(2.3,"black",5.0);
22 test.displayGeometricObject(c1);
23
24 Circle c2 = new Circle(4.3,"red",5.0);
25 test.displayGeometricObject(c2);
26 boolean isEquals = test.equalsArea(c1, c2);
27 System.out.println("c1和c2的面积是否相等:" + isEquals);
28
29 Circle c3 = new Circle(2.3,"black",5.0);
30 test.displayGeometricObject(c3);
31
32 boolean isEquals1 = test.equalsArea(c1, c3);
33 System.out.println("c1和c3的面积是否相等:" + isEquals1);
34
35 MyRectangle r1 = new MyRectangle(2.2,3.3,"red",1.0);
36 test.displayGeometricObject(r1);
37
38
39
40 }
41
42
43 //GeometricObject o = new Circle(...);
44 public void displayGeometricObject(GeometricObject o)
45 {
46 System.out.println("面积为:"+ o.findAre());
47 }
48
49
50
51 //测试两个对象的面积是否相等
52 public boolean equalsArea(GeometricObject o1,GeometricObject o2)
53 {
54 return o1.findAre() == o2.findAre();
55 }
56
57
58
59
60 }
1 package com.bytezreo.duotai3;
2
3 public class GeometricObject //几何图形
4 {
5 protected String color;
6 protected double weight;
7 public String getColor() {
8 return color;
9 }
10 public void setColor(String color) {
11 this.color = color;
12 }
13 public double getWeight() {
14 return weight;
15 }
16 public void setWeight(double weight) {
17 this.weight = weight;
18 }
19 // public GeometricObject()
20 // {
21 //
22 // }
23 public GeometricObject(String color, double weight) {
24 super();
25 this.color = color;
26 this.weight = weight;
27 }
28
29
30 public double findAre()
31 {
32 return 0.0;
33 }
34
35 }
1 package com.bytezreo.duotai3;
2
3 public class Circle extends GeometricObject
4 {
5
6 private double radius;
7
8 public Circle(double radius,String color, double weight)
9 {
10 super(color, weight);
11
12 this.radius = radius;
13
14 }
15
16 public double getRadius() {
17 return radius;
18 }
19
20 public void setRadius(double radius) {
21 this.radius = radius;
22 }
23
24 @Override
25 public double findAre()
26 {
27 // TODO Auto-generated method stub
28 return 3.14 *radius *radius;
29 }
30
31
32
33
34
35
36
37
38 }
1 package com.bytezreo.duotai3;
2
3 public class MyRectangle extends GeometricObject
4 {
5 private double width;
6 private double height;
7
8 public MyRectangle( double width, double height,String color, double weight)
9 {
10 super(color, weight);
11 this.width = width;
12 this.height = height;
13
14
15
16 }
17
18 public double getWidth() {
19 return width;
20 }
21
22 public void setWidth(double width) {
23 this.width = width;
24 }
25
26 public double getHeight() {
27 return height;
28 }
29
30 public void setHeight(double height) {
31 this.height = height;
32 }
33
34
35 @Override
36 public double findAre()
37 {
38
39 return width * height;
40 }
41
42
43
44 }

Java 多态性的使用的更多相关文章
- Java多态性举例说明
Java多态性的概念也可以被说成“一个接口,多个方法”. (一)相关类 class A ...{ public String show(D obj)...{ return ("A and D ...
- java多态性方法的重写Overriding和重载Overloading详解
java多态性方法的重写Overriding和重载Overloading详解 方法的重写Overriding和重载Overloading是Java多态性的不同表现.重写Overriding是父类与子类 ...
- Java多态性的“飘渺之旅”
原文出处:斯武丶风晴 摘要: 如何从Java多态性进行飘渺之旅呢? 我们用例子来旅行. 朵星人A:人类,是一个很奇妙的物种. 朵星人B:他们好像分为两种,嗯 先生,以及美女? 朵星人C:对,更年轻的有 ...
- [转载]深入理解java多态性
FROM:http://blog.csdn.net/thinkGhoster/article/details/2307001 昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整 ...
- Java多态性详解 (父类引用子类对象)
面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...
- Java多态性详解——父类引用子类对象
来源:http://blog.csdn.net/hikvision_java_gyh/article/details/8957456 面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实 ...
- Java多态性——分派
一.基本概念 Java是一门面向对象的程序设计语言,因为Java具备面向对象的三个基本特征:封装.继承和多态.这三个特征并不是各自独立的,从一定角度上看,封装和继承几乎都是为多态而准备的.多态性主要体 ...
- java多态性,父类引用指向子类对象
父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog.其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类. Animal animal = new C ...
- java多态性
多态分两种: (1) 编译时多态(设计时多态):方法重载. (2) 运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态.(我们平时说得多的事运行时 ...
- Java多态性理解
Java中多态性的实现 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对 ...
随机推荐
- 理解Vuex的辅助函数mapState
参考的地址是: https://www.cnblogs.com/tugenhua0707/p/9794423.html 之所以会在这里记录下来,是为了方便自己以后忘记的时候查看学习而已~: 并没有别的 ...
- linux时间和当前时间相关8小时问题
依次执行如下的代码: 1.更改时区 cp /usr/share/zoneinfo/GMT /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Shanghai ...
- uni-app 实现下拉刷新功能
我们在运用uni-app开发小程序或h5时,常常需要页面实现下拉刷新功能. 在 js 中定义 onPullDownRefresh 处理函数(和onLoad等生命周期函数同级),监听该页面用户下拉刷新事 ...
- vs code python(Pylance server) crash
The Pylance server crashed 5 times in the last 3 minutes. The server will not be restarted. See the ...
- 微信小程序-获取用户位置
首先我要提供几个文档的链接地址: 首先是官方文档的获取用户位置的API文档地址: 官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api ...
- python读取json格式文件大量数据,以及python字典和列表嵌套用法详解
1.Python读取JSON报错:JSONDecodeError:Extra data:line 2 column 1 错误原因: JSON数据中数据存在多行,在读取数据时,不能够单单用open(), ...
- 强化学习基础篇[3]:DQN、Actor-Critic详细讲解
强化学习基础篇[3]:DQN.Actor-Critic详细讲解 1.DQN详解 1.1 DQN网络概述及其创新点 在之前的内容中,我们讲解了Q-learning和Sarsa算法.在这两个算法中,需要用 ...
- C/C++ 实现Windows注册表操作
Windows注册表(Registry)是Windows操作系统中用于存储系统配置信息.用户设置和应用程序数据的一个集中式数据库.它是一个层次结构的数据库,由键(Key)和值(Value)组成,这些键 ...
- 线程锁(Python)
一.多个线程对同一个数据进行修改 from threading import Thread,Lock n = 0 def add(lock): for i in range(500000): glob ...
- 推荐一款接口自动化测试数据提取神器 JSonPath
在之前分享中,给大家介绍过一篇:如何快速审核接口返回值全部字段解决方案,详见原文:接口自动化测试,一键快速校验接口返回值全部字段 .当时,提到解决这类问题,市面上常见的解决方案有两种: 根据业务校验需 ...