Java学习二十:
一、形参和返回值
1、类名作为形参和返回值
①方法的形参是类名,其实需要的是该类的对象
②方法的返回值是类名,其实返回的是该类的对象
范例:
public class Cat {
public void eat() {
System.out.println("猫吃鱼");
}
}
public class CatOperator {
// 作为形参:
public void useCat(Cat c) {
c.eat();
}
// 作为返回值:
public Cat getCat() {
Cat c = new Cat();
return c;
}
}
/*
测试类
*/
public class CatDemo {
public static void main (String[] args) {
//创建操作类对象,并调用方法
CatOpreator co = new CatOperator();
Cat c = new Cat();
co.useCat (c);
}
//作为返回值:
Cat c2 = co.getCat(); //new Cat()
c2.eat();
}
输出结果:
猫吃鱼
猫吃鱼
2、抽象类名作为形参和返回值
①方法的形参是抽象类名,其实需要的是该抽象类的子类对象
②方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
public abstract class animal {
public abstract void eat();
}
/*
操作类
*/
public class AnimalOperator {
public void useAnimal(Animal a) { //Animal a = new Cat();
a.eat();
}
public Animal getAnimal() {
Animal a = new Cat();
return a;
}
}
/*
abstract不能实例化,需要一个子类
*/
public class Cat extends Animal {
//重写方法:
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
/*
测试类
*/
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.eat();
}
}
输出结果:
猫吃鱼
3、接口名作为形参和返回值
①方法的形参是接口名,其实需要的是该接口的实现类对象
②方法的返回值是接口名,其实返回的是该接口的实现类对象