Java-黑马Java学习作业-day14面向对象进阶(多态&包&权限修饰符&代码块)

学习视频链接:https://www.bilibili.com/video/BV17F411T7Ao


第一题:(问答题)

1. 什么叫做多态,条件是什么?

  • 多态:是指同一行为,具有多个不同表现形式。条件为:有继承或者实现关系;方法的重写(不重写无意义);父类引用指向子类对象

2. 使用多态特性,带来了什么样的好处?

  • 方法的形参可以定位为共同的父类Person。

3. 使用多态特性,注意什么样的弊端?

  • 如果子类有些独有的功能,此时多态的写法就无法访问子类独有功能了。

4. 关于多态的弊端我们如何解决?

  • 将父类类型向子类类型向下强制转换。

5. 在A包中我要同时使用B包下的Student和C包下的Student类,该如何使用?

  • 分别导入相应的包,创建对象时使用全类名。

6. final修饰类,修饰方法,修饰变量的特点?

  • 修饰类:表示不能被继承;
  • 修饰方法:不能被重写;
  • 修饰变量-局部:只能赋值一次;
  • 修饰变量-成员
    • 显示初始化:在定义成员变量的时候立马赋值;
    • 构造方法初始化:在构造方法中赋值一次

第二题:代码练习

1. 喂动物

需求:根据需求完成代码:
1.定义狗类
属性:
年龄,颜色
行为:
eat(String something)(something表示吃的东西)
看家lookHome方法(无参数)
2.定义猫类
属性:
年龄,颜色
行为:
eat(String something)方法(something表示吃的东西)
逮老鼠catchMouse方法(无参数)
3.定义Person类//饲养员
属性:
姓名,年龄
行为:
keepPet(Dog dog,String something)方法
功能:喂养宠物狗,something表示喂养的东西
行为:
keepPet(Cat cat,String something)方法
功能:喂养宠物猫,something表示喂养的东西
生成空参有参构造,set和get方法
4.定义测试类(完成以下打印效果):
keepPet(Dog dog,String somethind)方法打印内容如下:
年龄为30岁的老王养了一只黑颜色的2岁的狗
2岁的黑颜色的狗两只前腿死死的抱住骨头猛吃
keepPet(Cat cat,String somethind)方法打印内容如下:
年龄为25岁的老李养了一只灰颜色的3岁的猫
3岁的灰颜色的猫眯着眼睛侧着头吃鱼
5.思考:
1.Dog和Cat都是Animal的子类,以上案例中针对不同的动物,定义了不同的keepPet方法,过于繁琐,能否简化,并体会简化后的好处?
2.Dog和Cat虽然都是Animal的子类,但是都有其特有方法,能否想办法在keepPet中调用特有方法?

  • Aninal
package cn.kox.homework01;

/**
 * @ClassName: Animal
 * @Author: Kox
 * @Data: 2023/1/27
 * @Sketch:
 */
public class Animal {
   
    private int age;
    private String color;

    public Animal() {
   
    }

    public Animal(int age, String color) {
   
        this.age = age;
        this.color = color;
    }

    public int getAge() {
   
        return age;
    }

    public void setAge(int age) {
   
        this
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值