当前位置: 首页> 汽车> 维修 > [进阶]面向对象之多态(练习)

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

时间:2025/7/13 11:50:57来源:https://blog.csdn.net/Y0UZI/article/details/142268578 浏览次数: 0次

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

//父类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,"鱼");}
}

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

关键字:[进阶]面向对象之多态(练习)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: