187-2 抽象类作为形参和返回值
类名作为形参和返回值 | |
类名作形参 | 其实需要的是该类的对象 |
类名作返回值 | 其实返回的是该类的对象 |
抽象类作为形参和返回值 | |
抽象类作形参 | 其实需要的是该抽象类的子类对象 |
抽象类作返回值 | 其实返回的是该抽象类的子类对象 |
myArgs
itheima02
Animal
AnimalDemo
AnimalOperator
Cat
--------------------------------------------------------------
package itheima02E187;
public abstract class Animal {
public abstract void eat();
}
--------------------------------------------------------------
package itheima02E187;
public class AnimalDemo {
public static void main(String[] args) {
//
AnimalOperator ao = new AnimalOperator();
Animal a = new Cat();
ao.useAnimal(a);
Animal a2 = ao.getAnimal();//a2 = new Cat()
a2.eat();
}
}
--------------------------------------------------------------
package itheima02E187;
public class AnimalOperator {
//抽象类作形参
public void useAnimal(Animal a){//Animal a = new Animal()
a.eat();
}
//抽象类作返回值
public Animal getAnimal(){
Animal a = new Cat();
return a;
}
}
--------------------------------------------------------------
package itheima02E187;
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("187/猫吃鱼");
}
}