前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Java】继承和抽象类的练习题

【Java】继承和抽象类的练习题

作者头像
陶然同学
发布2023-02-24 15:06:21
5300
发布2023-02-24 15:06:21
举报
文章被收录于专栏:陶然同学博客
  1. 继承

请用代码描述:

一只黄色的加菲猫和一条白色名称为洛洛的哈士奇狗

要求: 把猫和狗共性抽取到动物类中

  1. 定义动物类(Animal)
    1. 成员变量 名称(name), 颜色(color)
    2. 要求:成员变量私有,提供空参和有参的构造方法
  2. 定义猫类(Cat),继承Animal类
    1. 提供空参,有参构造方法,在有参构造中调用父类的构造方法
  3. 定义狗类(Dog)
    1. 成员变量: 品种(breed)
    2. 提供空参,有参构造方法,在有参构造中调用父类的构造方法
  4. 创建测试类Test

在main方法中

使用Cat类的带参构造创建猫对象 c

使用 Dog 类的带参构造创建狗对象 d

  1. 继承

  请使用代码描述:  

2岁的红色的公鸡会吃饭(啄米)和打鸣

1岁的黑色的鸭子会吃饭(吃鱼)和游泳.

提示: 把公鸡和鸭子的共性抽取家禽类中,家禽类不使用抽象类

  1. 定义家禽类(Poultry)

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

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

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

提供空参和带参构造方法

提供setXxx和getXxx方法

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

成员方法:

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

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

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

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

提供空参和带参构造方法

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

成员方法:

        1.  重写父类的 eat()方法
          1. 输出格式: 1岁的黑色的鸭子在吃鱼
        2.  特有方法: swim()  游泳方法
          1. 输出格式:  1岁的黑色的鸭子在游泳

提供空参和带参构造方法

  1. 定义Test类

在main方法中

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

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

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

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

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

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

  1. 继承

请使用代码描述:  

工资为8000元的30岁的王小平老师,会吃饭(吃工作餐)和讲课.

成绩为90分的15岁的李小乐学生,会吃饭(吃学生餐)和学习.

提示: 把老师和学生的共性抽取人类中,人类不使用抽象类

  1. 定义Person类

成员变量(私有):  名称(name),年龄(age)

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

        1. 输出格式:  30岁的王小平在吃饭

提供空参和带参构造方法

提供setXxx和getXxx方法

  1. 定义老师类(Teacher),继承Person类

成员变量:  salary(工资)

成员方法:

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

输出格式:: 工资为8000元的30岁的王小平老师在吃工作餐

        1.  特有方法:  lecture() 讲课方法

输出格式:: 工资为8000元的30岁的王小平老师在讲课

提供空参和带参构造方法

提供setXxx和getXxx方法

  1. 定义学生类(Student),继承Person类

成员变量: score(成绩)

成员方法:

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

输出格式:: 成绩为90分的15岁的李小乐学生在吃学生餐

        1.  特有方法: study() 学习方法

输出格式:: 成绩为90分的15岁的李小乐学生在学习

提供空参和带参构造方法

提供setXxx和getXxx方法

  1. 定义Test类

在main方法中

创建老师对象t,并把名称赋值为”王小平”,年龄赋值为30,工资赋值为8000

调用老师对象t的吃饭方法

调用老师对象t的讲解方法

创建学生对象 s,并把名称赋值为”李小乐”,年龄赋值为14,成绩赋值为90分.

调用学生对象 s 的吃饭方法

调用学生对象 s 的学习方法

  1. 继承

正在上传…重新上传取消

正在上传…重新上传取消

正在上传…重新上传取消

正在上传…重新上传取消

正在上传…重新上传取消

  1. 定义动物类(Animal)
    1. 成员变量:年龄(age),腿的个数(numOfLegs)
    2. 抽象方法: void eat()
    3. 提供空参和有参构造方法和setXxx和getXxx方法
  2. 定义食肉类动物(Carnivore)继承自动物类(Animal)
    1. 提供空参和有参构造方法
  3. 定义食草类动物(Herbivore)继承自动物类(Animal)
    1. 提供空参和有参构造方法
  4. 定义老虎类(Tiger)继承食肉类动物(Carnivore)
    1. 重写eat()方法

输出格式: 年龄为 2的4条腿的老虎在吃羊

    1. 提供空参和有参构造方法
  1. 定义啄木鸟(Pecker)继承食肉类动物(Carnivore)
    1. 重写eat()方法

输出格式: 年龄为 1岁的2条腿的啄木鸟的在吃昆虫

    1. 提供空参和有参构造方法
  1. 定义长颈鹿(Giraffe)继承食草动物(Herbivore)
    1. 重写eat()方法

输出格式: 年龄为 3 岁的4条腿的长颈鹿在吃树叶

    1. 提供空参和有参构造方法
  1. 定义兔子(Rabbit)继承食草动物(Herbivore)
    1. 重写eat()方法

输出格式: 年龄为 1岁的4条腿的兔子在吃狗尾草

    1. 提供空参和有参构造方法
  1. 定义测试类Test

在main方法中

创建老虎对象 t,年龄赋值为2,腿的个数赋值为4;调用老虎对象t的eat()方法

创建啄木鸟对象 p,年龄赋值为1,腿的个数赋值为2;调用啄木鸟对象p的eat()方法

创建长颈鹿对象 g,年龄赋值为3,腿的个数赋值为4;调用长颈鹿对象g的eat()方法

创建兔子对象 r,年龄赋值为1,,腿的个数赋值为4;调用兔子对象r的eat()方法

  1. 继承 **

  按要求编写一个Java应用程序:

(1)编写一个矩形类Rect,包含:

矩形的宽width;矩形的高height。

两个构造方法:

    一个带有两个参数的构造方法,用于将width和height属性初化;

    一个不带参数的构造方法,将矩形初始化为宽和高都为10。

        两个方法:

        求矩形面积的方法area()

        求矩形周长的方法perimeter()

(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用

    矩形的左上角坐标来标识,包含:

    添加两个属性:矩形左上角坐标startX和startY。

    两个构造方法:

    带4个参数的构造方法,用于对startX、startY、width和height属性初始化;

    不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0的矩形;

添加一个方法:

    判断某个点是否在矩形内部的方法isInside(double x,double y)。如在矩形内,返回true, 否则,返回false。

  提示:点在矩形类是指满足条件:

            x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-height)

(3)编写PlainRect类的测试程序

    创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;

    计算并打印输出矩形的面积和周长;

判断点(25.5,13)是否在矩形内,并打印输出相关信息。

  1. 抽象类

定义一个抽象类 动物类Animal,里面有一个抽象方法voice() 打印动物的叫声,

定义一个类Cat 继承动物类,实现voice方法

定义一个类Pig继承动物类,实现voice方法。

定义一个类Dog继承动物类,实现voice方法

创建测试类,创建3个对象,调用方法

  1.  抽象类

在传智播客有很多员工(Employee 抽象类),按照工作内容不同分教研部员工(Teacher)和行政部员工(AdminStaff)

教研部根据教学的方式不同又分为讲师(Lecturer)和助教(Tutor)

行政部根据负责事项不同,有分为维护专员(Maintainer),采购专员(Buyer)

公司的每一个员工都编号,姓名和其负责的工作

工作内容:

讲师: 工号为 666 的讲师 傅红雪 在讲课

助教: 工号为 668的助教 顾棋 在帮助学生解决问题

维护专员: 工号为 686 的维护专员 庖丁 在解决不能共享屏幕问题

采购专员: 工号为 888 的采购专员 景甜 在采购音响设备

  1. 抽象类

请使用代码描述:  

18岁的演员景甜会吃饭(吃小龙虾)和跳舞

30岁的歌手薛之谦会吃饭(吃大闸蟹)和唱歌.

要求: 把演员和歌手的共性抽取人类中,使用抽象类和抽象方法

  1. 定义抽象类 人类(Person)

成员变量(私有):  姓名(name),年龄(age)

抽象方法:  吃饭(void eat())

提供空参和带参构造方法

提供setXxx和getXxx方法

  1. 定义演员类(Actor),继承Person类

成员方法:

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

输出格式:  18岁的演员景甜在吃小龙虾

        1.  特有方法:  跳舞(dance)

输出格式:  18岁的演员景甜在跳白天鹅.

提供空参和带参构造方法

  1. 定义歌手类(Singer),继承Person类

成员方法:

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

输出格式: 30岁的歌手薛之谦在吃大闸蟹

        1.  特有方法: sing()  唱歌

输出格式:  30岁的歌手薛之谦在演唱丑八怪

提供空参和带参构造方法

  1. 定义Test类

在main方法中

创建演员对象a,并把名称赋值为”景甜”,年龄赋值为18

调用演员对象a的吃饭方法

调用演员对象a的跳舞方法

创建歌手对象 s,并把姓名赋值为”薛之谦”,年龄赋值为30.

调用歌手对象 s 的吃饭方法

调用歌手对象 s 的唱歌方法

  1. 抽象类

请使用代码描述:  

四条腿黑色的狗会吃饭(吃骨头)和看家

两条腿的绿色鹦鹉吃饭(吃小米)和说话.

要求: 把狗和鹦鹉的共性抽取动物类中,使用抽象类和抽象方法

  1. 定义抽象类 动物类(Animal)

成员变量(私有):  颜色(color),腿的个数(numOfLegs)

抽象方法:  吃饭(void eat())

提供空参和带参构造方法

提供setXxx和getXxx方法

  1. 定义狗类(Dog),继承Animal类

成员方法:

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

输出格式::  4条腿黑色的狗在啃骨头

        1.  特有方法:  看家(lookHome)

输出格式::  4条腿黑色的狗在看家.

提供空参和带参构造方法

  1. 定义鹦鹉类(Parrot),继承Animal类

成员方法:

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

输出格式:: 2条腿的绿色鹦鹉在吃小米

        1.  特有方法: say()  说明

输出格式::  2条腿的绿色鹦鹉在说你好,丑八怪

      1. 提供空参和带参构造方法
  1. 定义Test类

在main方法中

创建Dog对象d,并把颜色赋值为”黑色”,腿的个数赋值为4

调用Dog对象d的吃饭方法

调用Dog对象d的看家方法

创建Porrot对象 p,并把颜色赋值为”绿色”,腿的个数赋值为2.

调用Porrot对象 p 的吃饭方法

调用Porrot对象 p 的说话方法

  1. 抽象类

请用代码描述:

20岁1.75米的男孩慕容紫英有一个18岁1.6米瓜子脸女朋友欧阳青青

欧阳青青在洗一件白色的李宁牌子的衣服

慕容紫英去散步(和欧阳青青)

慕容紫英用带有阳刚之气的声音对欧阳青青说:我会守护你一生一世

欧阳青青微笑着用于甜美的声音对慕容紫英说:有你在我就安心.

要求: 男孩和女孩的共有成员提取到人类中,使用抽象类和抽象方法

  1. 定义衣服类(Clothes)
    1. 成员变量:
      1. 颜色(color)
      2. 品牌(brand)
    2. 提供 无参,带参构造和setXxx和getXxx方法
  2. 抽象类(Person)
    1. 成员变量

姓名 name

年龄 age

身高 height

    1. 成员方法
      1. 抽象方法  void say(String content)
    2. 要求

提供无参和带参构造

提供setXxx和getXxx方法

3. 定义Girl类,继承Person类

    1. 成员变量

脸型(String face)

    1. 成员方法:

重写父类的  void say(String content) 方法

        1. 输出格式: 欧阳青青微笑着用于甜美的声音对慕容紫英说:有你在我就安心.

特有方法: 洗衣服 wash(Clothes c)

输出格式: 欧阳青青在洗一件白色的李宁牌子的衣服

    1. 要求:

提供无参和带参构造

提供setXxx和getXxx方法

  1. 定义Boy类,继承Person类
    1. 成员变量

女朋友 (girlFriend)

    1. 成员方法:

重写父类的  void say(String content) 方法

输出格式:容紫英用带有阳刚之气的声音对欧阳青青说:我会守护你一生一世

特有方法: 散步 walking()

输出格式: 慕容紫英和欧阳青青在河边的林荫小道上手牵着手散步

    1. 要求:

提供无参和带参构造

提供setXxx和getXxx方法

5. 定义测试类Test

    1. 提供main方法
    2. 在main方法中

创建衣服对象 c,品牌初始化为李宁,颜色初始化为白色

创建女孩对象 girl,姓名赋值为欧阳青青,年龄赋值为18,身高赋值为1.6,脸型赋值为瓜子脸

创建男孩对象 boy,姓名赋值为慕容紫英,年龄赋值以为20,身高赋值1.75,女朋友赋值为girl

调用对象girl的洗衣服方法

调用对象boy的散步方法

调用对象boy的说话方法,传入:”我会守护你一生一世”

调用对象 girl 的说话方法,传入:  “有你在我就安心.”

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档