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中多态性的实现 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对 ...
随机推荐
- 你不知道的Promise状态变化机制
1.Promise中PromiseStatus的三种状态 var p = new Promise((resolve, reject) => { // resolve 既是函数也是参数,它用于处理 ...
- .NET 使用Camunda快速入门
简介参考:https://www.cnblogs.com/lvdeyinBlog/p/16095603.html 一.工作流介绍 1. 什么是工作流 工作流(Workflow),是对工作流程及其各操作 ...
- 从零开始配置vim(30)——DAP的其他配置
很抱歉这么久才来更新这一系列,主要是来新公司还在试用期,我希望在试用期干出点事来,所以摸鱼的时间就少了.加上前面自己阳了休息了一段时间.在想起来更新就过去一个多月了.废话不多说了,让我们开始进入正题. ...
- Flowable 源码目录结构
title: Flowable 源码目录结构 date: 2023-8-17 23:47:20 tags: - Flowable 下载源码 下载地址:flowable/flowable-engine ...
- 【2】Visual Studio 2017同时配置OpenCV2.4 以及OpenCV4.3
相关文章: [1]windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置 [2]Visual Studio 2017同时配置OpenCV2.4 以及O ...
- 从嘉手札<2023-10-30 >
杂诗 壬戌辛酉日夜,闲看日月,秋风萧瑟,感怀予身期年孑然,岁月难留,故有所感,藉以此诗. 闲来无事,细数春秋. 初月难盈,残烛易收. 未若知人意,夜夜息绝游. 红叶醉天水,星河绕满楼. 竹影戚戚乱,岁 ...
- 遥感图像处理笔记之【Multi-label Land Cover Classification with Deep Learning】
遥感图像处理学习(3) 前言 遥感图像处理方向的学习者可以参考或者复刻 本文初编辑于2023年12月14日 2024年1月24日搬运至本人博客园平台 文章标题:Multi-label Land Cov ...
- Netty-核心模块组件-4
Netty 核心模块组件 一.Bootstrap.ServerBootstrap 1.Bootstrap 意思是引导,一个 Netty 应用通常由一个 Bootstrap 开始,主要作用是配置整个 N ...
- 探索C语言的数据类型:解密编程世界的核心秘密
欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. 常量与变量 1.1 常量 (1) 常量的概念 常量顾名思义就是无法改变的量,比如一周 ...
- 案例:使用sqlplus登录报ORA-12547错误
现象:Exadata刷机之后grid/oracle用户的环境变量是没有设置的,需要手工进行设置,设置完成后发现grid用户执行报错ORA-12547: [grid@dbm0dbadm01 ~]$ sq ...