Java多态练习(2024.7.10)

embedded/2024/10/11 9:19:24/

        动物类

java">package KeepPets20240710;public class Animal {private String color;private int age;public Animal(){}public Animal(String color, int age) {this.color = color;this.age = age;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void eat(String something) {System.out.println(this.age + "岁的" + this.color + "色动物在吃" + something);}}

        猫类

java">package KeepPets20240710;public class Cat extends Animal{public Cat() {}public Cat(String color, int age) {super(color, age);}public void catchMouse() {System.out.println(this.getAge() + "的" + this.getColor() + "猫在抓老鼠");}
}

        狗类

java">package KeepPets20240710;public class Dog extends Animal{public Dog() {}public Dog(String color, int age) {super(color, age);}public void LookHouse() {System.out.println(this.getAge() + "的" + this.getColor() + "狗在看家");}
}

        人类

java">package KeepPets20240710;public class Person {String name;int age;public Person(){}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void KeepPets(Animal a, String something) {System.out.printf("%d岁的饲养员%s在喂养%d岁的%s%s吃%s\n", this.age, this.name, a.getAge(),a.getColor(), (a instanceof Dog? "狗" : "猫") , something);if (a instanceof Dog d) {d.LookHouse();} else if(a instanceof Cat c) {c.catchMouse();} else {System.out.println("没这品种");}}
}

         测试

java">package KeepPets20240710;
import java.util.Scanner;
public class KeepPetsTest {public static void main(String[] args) {Person p = creatPerson();Animal aDog = creatDog();Animal aCat = creatCat();p.KeepPets(aDog, "骨头");p.KeepPets(aCat, "🐟");}public static Person creatPerson() {Scanner sc = new Scanner(System.in);System.out.println("请输入饲养员的姓名");String name = sc.next();System.out.println("请输入饲养员的年龄");int age = sc.nextInt();return new Person(name, age);}public static Dog creatDog() {Scanner sc = new Scanner(System.in);System.out.println("请输入狗的姓名");String name = sc.next();System.out.println("请输入狗的年龄");int age = sc.nextInt();return new Dog(name, age);}public static Cat creatCat() {Scanner sc = new Scanner(System.in);System.out.println("请输入猫的姓名");String name = sc.next();System.out.println("请输入猫的年龄");int age = sc.nextInt();return new Cat(name, age);}
}

 


http://www.ppmy.cn/embedded/59022.html

相关文章

求职笔记day3

运动量3.5万步。五园连通未完成。 未考试,朋友建议按代码随想录的框架先刷对应的知识点。 代码随想录 (programmercarl.com) 704. 二分查找 - 力扣(LeetCode) 单词倒排_牛客题霸_牛客网 (nowcoder.com)

线性代数|机器学习-P22逐步最小化一个函数

文章目录 1. 概述2. 泰勒公式3. 雅可比矩阵4. 经典牛顿法4.1 经典牛顿法理论4.2 牛顿迭代法解求方程根4.3 牛顿迭代法解求方程根 Python 5. 梯度下降和经典牛顿法5.1 线搜索方法5.2 经典牛顿法 6. 凸优化问题6.1 约束问题6.1 凸集组合 Mit麻省理工教授视频如下:逐步…

深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用

大数据领域内的诸多概念常常让人困惑,其中数据平台、数据中台、数据湖和数据仓库是最为关键的几个。 1. 数据平台 定义: 数据平台是一个综合性的技术框架,旨在支持整个数据生命周期的管理和使用。它包含数据采集、存储、处理、分析和可视化…

Flink+Paimon在阿里云大数据云原生运维数仓的实践

1. 背景 随着大数据产品云原生化的推进,云原生集群的规模和数量都在增加,云原生集群的运维难度也在不断增加,云原生集群的资源审计、资源拓扑、资源趋势的需要就比较迫切。云原生集群的资源审计主要是 node 资源、pod 资源,如当前…

从零开始做题:迷失幻境

题目 给出一个磁盘虚拟文件 解题 下载附件然后解压,得到一个虚拟机文件,使用的是DiskGenius磁盘工具打开 这样他里面的文件就全部展现出来了 我们可以看到有很多图片,和一个txt文档,还有几个没有后缀的文件,图片这么多,所以我…

3D感知视觉表示与模型分析:深入探究视觉基础模型的三维意识

在深度学习与大规模预训练的推动下,视觉基础模型展现出了令人印象深刻的泛化能力。这些模型不仅能够对任意图像进行分类、分割和生成,而且它们的中间表示对于其他视觉任务,如检测和分割,同样具有强大的零样本能力。然而&#xff0…

面试题之HashMap

目录 Jdk1.7到Jdk1.8 HashMap 发⽣了什么变化(底层)? HashMap的Put⽅法 HashMap的扩容机制原理 1.7版本 1.8版本 HashMap扩容为什么是扩为两倍? Jdk1.7到Jdk1.8 HashMap 发⽣了什么变化(底层)? 1. 1.7中底层是数组链表,1.8中底层是数组链表红⿊树&#xf…

sql monitoring 长SQL ASH AWR 都没有 未Commit or export to csv

Duration 4小时, Database Time 22.5, Session Inactive, 1.未Commit原因, 2.慢慢导出成csv文件? How is v$session status INACTIVE and v$sql_monitor status EXECUTING concurrently 2641811 Posts: 8 Jan 11, 2016 6:47P…