五一劳动节后首更!!!
各位小伙伴们,不好意思啦,昨天缺席上线了,近两天会重新补好。
这次分享的内容是类名和接口名作为形参和返回值时的不同情况,希望能够带来一些帮助啊!
一、类名作为形参
//测试类
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("猫跳得很高");
}
}