五一劳动节后首更!!!

各位小伙伴们,不好意思啦,昨天缺席上线了,近两天会重新补好。
这次分享的内容是类名和接口名作为形参和返回值时的不同情况,希望能够带来一些帮助啊!

一、类名作为形参

//测试类
public class test
{
    public static void main(String[] args)
    {
        animal a=new animal();
        cat c=new cat();
        a.operator(c);
    }
}
//动物类
public class animal
{
   public void operator(cat c)//cat c=new cat();
   {
       c.eat();
   }
}
//猫类
public class cat
{
    public void eat()
    {
        System.out.println("猫吃鱼");
    }
}

二、类名作为返回值

public class cat
{
    public cat get()
    {
        System.out.println("猫吃鱼");
    }
}
public class operator
{
    public cat getfood()
    {
        cat c=new cat();
        return c;
    }
}
//测试类
public class test
{
    public static void main(String[] args)
    {
        operator p=new operator();
        cat aa=p.getfood();
        aa.getfood();
    }
}

若是本该被实例化的对象无法进行实例化操作(即该类为抽象类),则需要运用多态方面的知识,即建立该类的子类,举例为:

//测试类
public class test
{
    public static void main(String[] args)
    {
        operator p=new operator();
        animal a=new cat();
        p.useanimal(a);//类名作为形参
        animal a2=p.getanimal();
        a2.eat();
    }
}
//操作动物类
public class operator
{
    public void useanimal(animal a)//animal a=new cat();
    {
        a.eat();
    }
    public animal getanimal()
    {
        animal a=new cat();
        return a;//类名作为返回值
    }
}
//抽象动物类
public abstract class animal
{
    public void eat()
    {
        System.out.println("猫吃鱼");
    }
}
//猫类
public class cat extends animal
{
    public void eat()
    {
        System.out.println("猫吃鱼");
    }
}

三、接口名作为形参

//测试类
public class test
{
    public static void main(String[] args)
    {
        operator p=new operator();
        jumpping j=new jumpping();
        p.usejump(j);//接口名作为形参
    }
}
//操作接口类
public class operator
{
    public void usejump(jumpping j)
    {
        j.jump();
    }
}
//接口类
public interface jumpping
{
    void jump();
}
//接口子类
public class cat implements jumpping
{
    public void jump()
    {
        System.out.println("猫跳得很高");
    }
}

四、接口作为返回值

//测试类
public class test
{
public static void main(String[] args)
{
operator p=new operator();
    jump j=p.getjump();
    j.jump();//接口名作为返回值
}
}
//操作接口类
public class operator
{
public jump getjump()
{
    jumpping j=new cat();
    return j;
}
}
//接口类
public interface jumpping()
{
void jump();
}
//接口子类
public class cat implements jumpping
{
public void jump()
{
System.out.println("猫跳得很高");
}
}
posted @ 2022-05-02 20:06  yesyes1  阅读(21)  评论(0编辑  收藏  举报