- 方法的形参是类名,其需要的是该类的对象
- 方法的返回值是类名,其返回的是该类的对象
package Experience;
public class Cat{
public void act(){
System.out.println("猫抓老鼠");
}
}
package Experience;
public class CatDemo {
public void useCat(Cat c){
c.act();
}
public Cat getCat(){
Cat c=new Cat();
return c;
}
}
package Experience;
public class Test {
public static void main(String[] args){
CatDemo cat=new CatDemo();
Cat c=new Cat();
cat.useCat(c);
Cat c2=cat.getCat();
c2.act();
}
}
- 方法的形参是抽象类名,其实需要的是该抽象类的子类对象
- 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
package Experience;
public abstract class Animal {
public abstract void eat();
}
package Experience;
public class Dog extends Animal {
Dog(){
}
@Override
public void eat(){
System.out.println("单身狗吃狗粮");
}
}
package Experience;
public class AnimalDemo {
public void useAnimal(Animal a){
a.eat();
}
public Animal getAnimal(){
Animal a=new Dog();
return a;
}
}
package Experience;
public class Test {
public static void main(String[] args){
AnimalDemo animalDemo=new AnimalDemo();
Animal animal=new Dog();
animalDemo.useAnimal(animal);
Animal b=animalDemo.getAnimal();
b.eat();
}
}