类名作为形参和返回值
- 方法的形参是类名,其实需要的是该类的对象
- 方法的返回值是类名,其实返回的是该类的对象
//猫类 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) {
CatOperator co = new CatOperator(); Cat c = new Cat(); co.useCat(c); Cat c2 = co.getCat(); c2.eat(); } }
- 方法的形参是抽象类名,其实需要的是该抽象类的子类对象
- 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
//动物类 抽象类 public abstract class Animal {
public abstract void eat(); }
//动物操作类 public class AnimalOperator {
public void useAnimal(Animal a) {
//抽象类作为形参 a.eat(); } public Animal getAnimal() {
//抽象类作为返回值 Animal a=new Cat(); return a; } }
//猫类 public class Cat extends Animal{
@Override public void eat() {
// TODO Auto-generated method stub 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(); } }
- 方法的形参是接口名,其实需要的是该接口的实现类对象
- 方法的返回值是接口名,其实返回的是该接口的实现类对象
//跳高 接口 public interface Jumpping {
void jump(); }
//跳高操作类 public class JumppingOperator {
public void useJump(Jumpping j) {
// 接口作为形参 j.jump(); } public Jumpping getJump() {
// 接口作为返回值 Jumpping j = new Cat(); return j; } }
//猫类 public class Cat implements Jumpping {
@Override public void jump() {
// TODO Auto-generated method stub System.out.println("猫会跳高"); } }
//测试类 public class JumppingDemo {
public static void main(String[] args) {
JumppingOperator jo = new JumppingOperator(); Jumpping j = new Cat(); jo.useJump(j); Jumpping j2 = jo.getJump(); j2.jump(); } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209064.html原文链接:https://javaforall.net
