【Java】继承和多态的小案例练习

简介: 【Java】继承和多态的小案例练习

面向对象2 继承和多态 :

  1. 继承

定义动物类(Animal)

  1. 成员变量
  1. 名称 name
  2. 颜色 color
  1. 成员方法
  1. 吃  eat()  
  1. 打印格式: X色的Tom(name属性)动物在吃东西
  1. 要求:
  1. 成员变量不带权限修饰符,方法是公共权限的.
  1. 定义猫类(Cat),继承Animal类
  1. 成员方法: 抓老鼠(catchMouse())
  1. 在方法中的输出格式为: 棕色的Tom猫在抓老鼠


  1. 定义狗类(Dog),继承Animal类
  1. 成员方法: 看家 (lookHome())
  1. 在方法中的输出格式为: 白色的Jerry狗在看家
  1. 定义测试类Test
  1. 在main方法中
  1. 创建Cat对象c,name赋值为Tom,color赋值为 棕色

调用c对象成员方法eat方法

调用c对象的成员方法catchMouse()

  1. 创建Dog对象 d,name赋值为Jerry,color赋值为 白色

调用d对象成员方法eat方法

调用d对象成员方法 lookHome方法


  1. 多层继承

动物 Animal (爷爷)

  吃饭 eat

猫科动物 Maoke  (他爹)

  爬树  

猫类 Cat  (子类)

  抓耗子


测试类中 创建猫类 调用 吃饭 爬树

  1. 继承
  2. 定义交通工具类(Vehicle)
  1. 成员变量
  1. 轮子个数 wheel
  2. 颜色 color
  1. 成员方法

跑  run()  


打印格式:  4个轮子白色的车在跑


要求:

成员变量不带权限修饰符,方法是公共权限的.


定义小汽车类(Car),继承Vehicle类

成员方法: 加油 (addGasoline() ))


在方法中的输出格式为: 4个轮子的白色小汽车在加油


定义电动车类(ElectricBicycle),继承Vehicle类

成员方法: 充电 (charge())


在方法中的输出格式为: 2个轮子的黑色电动自行车在充电


定义测试类Test

在main方法中

创建Car 对象c,wheel 赋值为 4,color赋值为 白色

调用c对象成员方法run方法


调用c对象的成员方法addGasoline()


创建ElectricBicycle对象 eb,wheel 赋值为2,color赋值为 黑色

调用ed对象成员方法run方法


调用ed对象成员方法 charge方法


  1. 继承

1. 定义家禽类(Poultry)

成员变量(私有):  颜色(color),年龄(age)

提供空参和带参构造方法

提供setXxx和getXxx方法

成员方法:  吃饭(void eat())


输出格式:  X岁的X色家禽在吃饭


定义公鸡类(Cock),继承Poultry类


提供空参和带参构造方法


成员方法:


1.   重写父类的 eat()方法


输出格式::  X岁的X色公鸡在啄米


2.  特有方法:  打鸣(crow)


输出格式::  X岁的X色公鸡在打鸣


定义鸭子类(Duck),继承Poultry类


提供空参和带参构造方法


成员方法:


1.  重写父类的 eat()方法


输出格式: X岁的X色的鸭子在吃鱼


2.  特有方法: swim()  游泳方法


输出格式:  X岁的X色的鸭子在游泳


4. 定义Test类


d) 在main方法中


i. 创建公鸡对象c,并把颜色赋值为”红色”,年龄赋值为2


调用公鸡对象c的吃饭方法


调用公鸡对象c的打鸣方法


iv. 创建鸭子对象 d,并把颜色赋值为”黑色”,年龄赋值为1.


调用鸭子对象 d 的吃饭方法


调用鸭子对象 d 的游泳方法


  1. 继承&方法重写

创建汽车Car类


成员变量:轮胎个数 int luntai, 汽车颜色 String color,  车身重量 double weight、速度 int speed


成员方法:


void jiashu() 加速方法, 使成员属性speed 速度加1 speed


void jiansu() 减速方法, 使成员属性speed 速度减1 speed


生成get/set方法,空参和满参构造方法


创建奥迪车Aodi类,继承Car类


重写 加速的方法和减速的方法,每次加减速度 20


创建测试类:


    创建Aodi 奥迪车对象,调用加速,减速的方法


  1. 继承&方法重写


定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),


还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。


编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),


并编写构造方法。 编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),


还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。 在main方法中测试以上各类。


抓耗子的方法


相关文章
|
11天前
|
存储 Java
java用base64编码案例
Java Base64编码示例:导入`java.util.Base64`,设置字符串`originalString`,使用`Base64.getEncoder().encodeToString()`编码并存储到`encodedString`,打印编码后字符串。解码用`Base64.getDecoder().decode()`。
18 0
|
1天前
|
机器学习/深度学习 Java C++
Java 继承
5月更文挑战第1天
|
7天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
9天前
|
Java
Java语言---面向对象的三大特征之继承
Java语言---面向对象的三大特征之继承
|
9天前
|
Java
【专栏】如何在 Java 8 中使用 Streams?结合多种案例剖析学习!
【4月更文挑战第28天】Java 8 的 Streams 提供了一种处理数据集合的新方式,增强了代码的可读性和可维护性。本文介绍了 Streams 的基本概念,如从数据源创建 Stream,以及中间和终端操作。通过过滤、映射、归并、排序、分组等案例,展示了 Streams 的使用,包括并行 Streams 提高效率。学习 Streams 可以提升代码质量和效率,文章鼓励读者在实际开发中探索更多 Streams 功能。
|
10天前
|
Java
java类、封装、继承
java类、封装、继承
|
11天前
|
Java Apache
java读取excel数据案例
Java代码示例使用Apache POI库读取Excel(example.xlsx)数据。创建FileInputStream和XSSFWorkbook对象,获取Sheet,遍历行和列,根据单元格类型(STRING, NUMERIC, BOOLEAN)打印值。需引入Apache POI库并确保替换文件路径。
8 1
|
13天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
13天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
14 0
|
13天前
|
设计模式 存储 JavaScript
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式