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. ccs3动画-div向上移动的动画

    <head> <meta charset="UTF-8"> <meta name="viewport" content=" ...

  2. vue报错:'XX' is defined but never used no-unused-vars

    参考地址:http://www.gold404.cn/info/87 导致这个报错的原因就是eslint校验, 就是你当初在vue创建脚手架的时候选择了eslint校验: 后面你绝对会碰到这样的报错, ...

  3. widows 安装docker

    1.安装docker 依次安装如下两个文件: 如启动docker报错:可以是hv没有开启,按如下方法解决 (23条消息) Windows10启动Docker报错:Hardware assisted v ...

  4. 使用 NuGet.Server 创建和部署 ASP.NET Web 应用程序搭建私有Nuget服务器

    使用 NuGet.Server 创建和部署 ASP.NET Web 应用程序搭建私有Nuget服务器 在Visual Studio中,选择"新建>文件>"Project ...

  5. OS X 下安装 pycurl

    1 (venv) ➜ pythonProject4 find / -iname ssl.h 2 find: /usr/sbin/authserver: Permission denied 3 /usr ...

  6. 【文件】C语言文件操作及其使用总结篇【初学者保姆级别福利】

    [文件]C语言文件操作及其使用总结篇[初学者保姆级别福利] 一篇博客学好动态内存的管理和使用 这篇博客干货满满,建议收藏再看哦!! 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很 ...

  7. OGG-01496 Failed to open target trail file ./dirdat/ra000002, at RBA 2179

    1.问题描述 在启动OGG源端的投递进程时,报错:OGG-01496 OGG-01496 Failed to open target trail file ./dirdat/ra000002, at ...

  8. CF1903

    A 若 \(k>1\),冒泡排序:否则判断是否已经有序. B 初始令 \(a_i=2^{30}-1\),然后对于每个限制,让 \(a_i\leftarrow a_i\&M_{i,j},\ ...

  9. SP10050 POWTOW - Power Tower City 题解

    题目传送门 前置知识 扩展欧拉定理 解法 本题幂塔是有限层的,这里与 luogu P4139 上帝与集合的正确用法 中的无限层幂塔不同,故需要在到达递归边界 \(n+1\) 时进行特殊处理,对于处理 ...

  10. 如何从零实现属于自己的 API 网关?

    序言 上一篇文章:你连对外接口签名都不会知道?有时间还是要学习学习. 有很多小伙伴反应,对外的 API 中相关的加签,验签这些工作可以统一使用网关去处理. 说到网关,大家肯定比较熟悉.市面上使用比较广 ...