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中多态性的实现 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对 ...
随机推荐
- 【JS 逆向百例】医保局 SM2+SM4 国产加密算法实战
关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途 ...
- 在K8S中各个组件及其作用?
Kubernetes(简称K8s)是一个强大的容器编排系统,其主要组件及其作用如下: kube-apiserver: 集群的主入口点,提供了RESTful API接口供用户或内部组件与集群进行交互.它 ...
- bootstrap ----- bootstrap table表格参数
表格参数: 名称 标签 类型 默认 描述 - data-toggle String 'table' 不用写 JavaScript 直接启用表格. classes data-classes String ...
- JS ----- Javascript中apply、call、bind
这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师的一篇文章的一句话: "对我来说,博客首先是一种知识管理工具,其次才是传播工具.我的技术文章,主要用来整理我还不懂 ...
- MybatisPlus对Mysql数据库关键字作为列名的处理--SQLSyntaxErrorException: You have an error in your SQL syntax;
说明: 在设计数据库时,使用mysql关键字作为列名(比如order用于排序),就会报错:java.sql.SQLSyntaxErrorException: You have an error in ...
- 突破性的多语言代码大模型基CodeShell:引领AI编程新时代
突破性的多语言代码大模型基CodeShell:北京大学与四川天府银行联合打造,引领AI编程新时代 1.CodeShell简介 CodeShell是北京大学知识计算实验室联合四川天府银行AI团队研发的多 ...
- CE修改器入门:查找多级指针
本关是第6关的加强版,CE 6.X 教程中的4级指针比5.X的要简单些.多级指针就像玩解谜游戏一样,谜团不只一个,盒子中还有盒子.这里面是4级指针,游戏中也有比如8级指针,12级指针等等,思路都是一样 ...
- git操作 手写稿
- Mygin之错误恢复Recover中间件
本篇是mygin这个系列的最后一篇.如果想自己动手实现一个类似Gin的Web框架,建议从 mgin第一篇开始, 总代码行数有效行数只有600多行 github源码 mygin 目的 实现错误处理机制 ...
- SATA 中ATA与AHCI的区别
SATA中ATA和AHCI有什么区别? 1.ACHI是针对SATA2设计的,可以卡其NCQ功能,表面上没有速度的优势,但是因为算法不同,可以有效的保护硬盘.ATA 是硬件模拟IDE的一种方法.表面 ...