.方法的参数是抽象类名,其实需要的是该抽象类的子类对象2
.方法的返回值为抽象类名,其实返回的是该抽象类的子类对象->抽象类的方法里面是没有值的,只有重写过才会有值
以下为四个类 animaloperator类 cat类 animal类 animaldemo类
animaloperator类
package 抽象类名作为形参和返回值;
public class animaloperator {
public void useanimal(animal a) {
// TODO 自动生成的方法存根
a.eat();
}
public animal getanimal() {
animal a1 = new cat();
return a1;
}
}
cat类
package 抽象类名作为形参和返回值;
public class cat extends animal {
@Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("猫吃鱼");
}
}
animal类
package 抽象类名作为形参和返回值;
public abstract class animal {
public abstract void eat();
}
animaldemo类
package 抽象类名作为形参和返回值;
public class animaldemo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
animaloperator a =new animaloperator();
animal a1 = new cat();
a.useanimal(a1);
//---------调用animal类为返回值的方法------------------------
animal a2 = a.getanimal(); //一定要搞好逻辑关系,以此为例,在getanimal()方法写animal类为返回值的时候,getanimal()=animal(返回的那个对象)
//前面的那个 animal,其实就是重新定了一个变量去接受,因为只要重写接受过,才能有效
a2.eat();
}
}