类也可以作为形参和返回值?
形参和返回值
普通类
-
方法的形参是类名,其实需要的是该类的对象 方法的返回值是类名,其实返回的是该类的对象
下面给出代码演示
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();
}
}
循序渐进,勇攀登!
一起加油!
