当前位置: 首页 > news >正文

[进阶]面向对象之多态(练习)

需求:
在这里插入图片描述

//父类animal
package polymorphism.Test;public abstract 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.age = age;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public void eat(String something){System.out.println("动物再吃"+something);}}
package polymorphism.Test;public class Dog extends Animal{public Dog() {}public Dog(int age, String color) {super(age, color);}@Overridepublic void eat(String something) {System.out.println(getAge()+"岁的"+getColor()+"颜色的狗两只前腿死死的抱住"+something+"猛吃");}
}
package polymorphism.Test;public class Cat extends Animal{public Cat() {}public Cat(int age, String color) {super(age, color);}@Overridepublic void eat(String something){System.out.println(getAge()+"岁的"+getColor()+"颜色的猫咪眯着眼睛侧着头吃"+something);}public void catchMouse(){System.out.println("猫抓老鼠");}
}
package polymorphism.Test;public class Person {private String name;private 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 keepPet(Dog dog,String something){//System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"//+dog.getColor()+"颜色的"+dog.getAge()+"岁的狗");//dog.eat(something);//public void keepPet(Cat cat,String something){//System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"//+cat.getColor()+"颜色的"+cat.getAge()+"岁的猫");//cat.eat(something);//}public void keepPet(Animal a,String something){if(a instanceof Dog d){System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"+a.getColor()+"颜色的"+a.getAge()+"岁的狗");d.eat(something);}else if (a instanceof Cat c){System.out.println("年龄为"+getAge()+"岁的"+name+"养了一只"+a.getColor()+"颜色的"+a.getAge()+"岁的猫");c.eat(something);}else {System.out.println("没有这种动物");}}}

测试类

package polymorphism.Test;public class Test {public static void main(String[] args) {/* Person p1 = new Person("老王",30);Dog d = new Dog(2,"黑");p1.keepPet(d,"骨头");Person p2 = new Person("老李",25);Cat c = new Cat(3,"灰");p2.keepPet(c,"鱼");*/Person p = new Person("老王",30);Dog d = new Dog(2,"黑");Cat c = new Cat(3,"灰");p.keepPet(d,"骨头");p.keepPet(c,"鱼");}
}

运行结果
在这里插入图片描述


http://www.mrgr.cn/news/27188.html

相关文章:

  • K8S - 用service account 登陆kubectl
  • 服务器数据增量迁移方案-—SAAS本地化及未来之窗行业应用跨平台架构
  • 树莓派交叉编译
  • 用SpringBoot进行阿里云大模型接口调用同步方法和异步方法
  • 第2步VM虚拟机配置网络环境实现DHCP分配IP地址上网
  • AI基础 L21 Quantifying Uncertainty and Reasoning with Probabilities III
  • 2848、与车相交的点
  • Redis embstr 编码
  • 数字IC设计\FPGA 职位经典笔试面试--整理
  • 实验一 番外篇 虚拟机联网与DHCP服务器
  • rust GUI框架Tauri入门——基于vanilla.js
  • 【LeetCode 算法笔记】84. 柱状图中最大的矩形
  • CentOS 入门
  • 切换淘宝最新镜像源npm
  • c++ 的iostream 和 c++的stdio的区别和联系
  • 每日OJ_牛客_NC313 两个数组的交集
  • o1模型:引领AI技术在STEM领域的突破与应用
  • 高教社杯数模竞赛特辑论文篇-2016年A题:基于极值优化的系泊系统设计
  • 模仿抖音用户ID加密ID的算法MB4E,提高自己平台ID安全性
  • Linux中,过滤经过服务器的MAC地址通常涉及几个步骤,包括查看当前连接的MAC地址、使用iptables进行MAC地址过滤