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 多态性的使用的更多相关文章

  1. Java多态性举例说明

    Java多态性的概念也可以被说成“一个接口,多个方法”. (一)相关类 class A ...{ public String show(D obj)...{ return ("A and D ...

  2. java多态性方法的重写Overriding和重载Overloading详解

    java多态性方法的重写Overriding和重载Overloading详解 方法的重写Overriding和重载Overloading是Java多态性的不同表现.重写Overriding是父类与子类 ...

  3. Java多态性的“飘渺之旅”

    原文出处:斯武丶风晴 摘要: 如何从Java多态性进行飘渺之旅呢? 我们用例子来旅行. 朵星人A:人类,是一个很奇妙的物种. 朵星人B:他们好像分为两种,嗯 先生,以及美女? 朵星人C:对,更年轻的有 ...

  4. [转载]深入理解java多态性

    FROM:http://blog.csdn.net/thinkGhoster/article/details/2307001 昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整 ...

  5. Java多态性详解 (父类引用子类对象)

    面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...

  6. Java多态性详解——父类引用子类对象

    来源:http://blog.csdn.net/hikvision_java_gyh/article/details/8957456 面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实 ...

  7. Java多态性——分派

    一.基本概念 Java是一门面向对象的程序设计语言,因为Java具备面向对象的三个基本特征:封装.继承和多态.这三个特征并不是各自独立的,从一定角度上看,封装和继承几乎都是为多态而准备的.多态性主要体 ...

  8. java多态性,父类引用指向子类对象

    父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog.其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类. Animal animal = new C ...

  9. java多态性

    多态分两种: (1)   编译时多态(设计时多态):方法重载. (2)   运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态.(我们平时说得多的事运行时 ...

  10. Java多态性理解

      Java中多态性的实现 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对 ...

随机推荐

  1. 通过dotnet-dump分析生产环境docker容器部署的应用问题

    首先找到对应的docker id并exec进去,然后执行命令并更新apt包+下载procps和wget用于等下拉取dotnet-dump和查看线程 sed -i -e "s@deb.debi ...

  2. 解决VS选择运行“在证书存储区中找不到清单签名证书”

     转:https://www.cnblogs.com/190196539/archive/2011/12/03/2272861.html 解决"在证书存储区中找不到清单签名证书" ...

  3. Docker 安装 MySQL8 数据库

    创建数据卷 mkdir -p /usr/mysql/conf /usr/mysql/data chmod -R 755 /usr/mysql/ 创建配置文件 vim /usr/mysql/conf/m ...

  4. SpringCloud-07-Hystrix

    Hystrix 熔断器 1.Hystrix 概述 Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务.第三方库,防止出现级联失败(雪崩). 雪崩:一个服务失败,导致整条链路 ...

  5. 一篇带你掌握cmake入门|了解cmake|掌握cmake基本操作

    一篇带你掌握cmake入门 内容出处: 作者: 苏丙榅 链接: https://subingwen.cn/cmake/CMake-primer/ 来源: 爱编程的大丙 著作权归作者所有.商业转载请联系 ...

  6. 多路转接高性能IO服务器|select|poll|epoll|模型详细实现

    前言 那么这里博主先安利一下一些干货满满的专栏啦! Linux专栏https://blog.csdn.net/yu_cblog/category_11786077.html?spm=1001.2014 ...

  7. CF911G Mass Change Queries 题解

    题目链接:CF 或者 洛谷 前置知识点:平衡树合并: CF文章 与维基百科 看上去这题有很多人用线段树分裂与合并去做,其实这种需要分裂和合并的,我们用文艺平衡树去维护区间信息是最容易写的. 考虑本题的 ...

  8. Linux 中通过虚拟地址获取物理地址并锁定

    在 Linux 开发过程中,申请内存后,某些时候需要用物理地址传给其他外设进行写入或者读取操作,同时考虑到防止被操作系统 sawp,导致实际的物理地址发生变化,从而在操作对应的虚拟地址时无法正常运行等 ...

  9. yapi 的分组的理解!

    yapi ,分为超级管理员和 分组组长和项目组长: ------------------------------------------------------------------------ 人 ...

  10. MySQL-分区表和分区介绍

    一.MySQL分区简介 1.数据库分区 MySQL是一种常用的关系型数据库管理系统,分区表是一种在MySQL数据库中处理大规模数据的最佳方案之一,其主要目的是为了在特定的SQL操作中减少数据读写的总量 ...