类也可以作为形参和返回值?
形参和返回值
普通类
-
方法的形参是类名,其实需要的是该类的对象 方法的返回值是类名,其实返回的是该类的对象
下面给出代码演示
public class Cat { public void eat() { System.out.println("猫吃鱼"); } }
操作类
public class CatOpreator { public void useCat(Cat c) { //需要传递一个对象 c.eat(); } public Cat useCat2() { //返回一个对象 Cat c = new Cat(); return c; } }
测试类
public class CatDamo { public static void main(String[] args) { //类名作形参 /*创建一个操作类对象*/ CatOpreator co = new CatOpreator(); Cat c=new Cat(); co.useCat(c); //类名做返回值 Cat cc = co.useCat2();//相当于Cat cc = new Cat; cc.eat(); } }
抽象类
-
方法的形参是抽象类名,其实需要的是该抽象类的子类对象 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
代码演示
首先定义父子类
public abstract class Animal { public abstract void eat(); } public class Cat2 extends Animal { @Override public void eat() { System.out.println("猫吃鱼"); } }
操作类
public class AnimalOperator { public void useAnimal(Animal a) { a.eat(); } public Animal getAnimal() { Animal a = new Cat2(); return a; } }
测试类
public class AnimalDemo { public static void main(String[] args) { AnimalOperator ao = new AnimalOperator(); Animal a = new Cat2();//多态的运用-向上转型 ao.useAnimal(a); System.out.println("-----"); Animal aa = ao.getAnimal();//相当于Animal aa = new Cat2(); aa.eat(); } }
循序渐进,勇攀登!
一起加油!