创建一个动物父类和狗,猫子类,当这些子类中有共同方法只是实现不同时,我们可以利用多态的扩展性
class Animal{
public void eat(){
System.out.println("吃饭");
}
public void sheep(){
System.out.println("睡觉");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("狗吃肉");
}
public void sheep(){
System.out.println("狗侧着睡觉");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
public void sheep(){
System.out.println("猫躺着睡");
}
}
如上狗类和猫类都有相同的方法,只是实现不同,此时我们可以编写一个工具类,并在工具类中编写一个成员方法,以Animal为参数,调用其共同的方法
//可以将不同类的共同方法存放在一个单独的类方法中,这样后续创建新类时想要调用该新类方法时,不需要再去添加该类的方法
class AnimalTool{
public static void Fun(Animal animal){ //以类名作为参数类型,后面传的值就相当于为:Animal animal =new Dog(多态)
animal.eat(); //用对象名去调用方法时满足编译看左,运行看右,所以会去Dog类里面去找该方法并运行
animal.sheep();
}
}
测试类
public class DuoTaiDemo1 {
public static void main(String[] args) {
//父类的引用指向子类对象
Animal a1=new Dog();
AnimalTool.Fun(a1); //AnimalTool会调用自己的静态方法Fun,然后我们将a1(Dog对象)作为参数传入给Fun方法
//父类的引用指向子类对象
Animal c1=new Cat();
AnimalTool.Fun(c1);
}
}
标签:java,void,多态,扩展性,System,Animal,println,public,out
From: https://www.cnblogs.com/ndmtzwdx/p/18431291