1`多态的综合练习
运用了多种继承方法和继承知识.
package DAY5.多态综合练习;
public class Animal {
public String color;
public int age;
public String name;
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 String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void eat(String food){
System.out.println("");
}
}
package DAY5.多态综合练习;
public class Cat extends Animal {
public void catchMouse(){
System.out.println("抓老鼠");
}
@Override
public void eat(String food) {
super.eat(food);
System.out.println(super.age+"岁的"+super.color+"颜色的猫正眯着眼睛侧着头吃"+food);
}
}
package DAY5.多态综合练习;
public class Dog extends Animal{
public void lookHome(){
System.out.println("看家");
}
@Override
public void eat(String food) {
super.eat(food);
System.out.println(super.age+"的"+super.color+"颜色的狗正在吃"+food);
}
}
package DAY5.多态综合练习;
public class Person extends Animal{
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(Animal a,String food){
System.out.println(this.getAge()+"岁的"+this.getName()+"喂养了一只"+a.getColor()+"色的"+a.getName());
}
}
package DAY5.多态综合练习;
public class Test {
public static void main(String[] args) {
Person p1=new Person("老王",30);
Person p2=new Person("老李",25);
Animal ad=new Dog();
ad.setColor("黑");
ad.setAge(2);
ad.setName("狗");
Animal ac=new Cat();
ac.setAge(3);
ac.setColor("灰");
ac.setName("鱼");
Dog d=(Dog) ad;
d.lookHome();
Cat c=(Cat) ac;
c.catchMouse();
p1.keepPet(ad,"骨头");
ad.eat("骨头");
p2.keepPet(ac,"鱼");
ac.eat("鱼");
}
}
2·工具类的实现
涉及简易的工具类实现
public class ArrayUtil {
//私有化构造方法,目的:为了不让外界创建他的对象
private ArrayUtil(){}
//需要定义为静态的,方便调用
//StringJoiner 的add()方法不能添加整数
public static String printArr(int[] arr){
StringBuilder sb=new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if(i!=arr.length-1){
sb.append(arr[i]+",");
}else
sb.append(arr[i]+"]");
}
return sb.toString(); //toString 方法,将StringBuilder 转化为Stirng 类型
}
}
public class TestDemo {
public static void main(String[] args) {
int[] arr={1,2,3,458,94};
String str=ArrayUtil.printArr(arr);
System.out.println(str);
}
}