首页 > 代码库 > 当类的成员方法接收的形式参数是抽象类或者是接口时,如何传参数?

当类的成员方法接收的形式参数是抽象类或者是接口时,如何传参数?

方法一:

     定义一个类实现接口,创建该类,将该类对应的对象当做形式参数

代码如下:

 1 interface Animal 2 {  3   public abstract void eat (); 4 } 5 class Dog implements Animal 6 { 7     public void eat() 8     { 9         System.out.println("eat dog");10     }11 12 }13 class Text14 {  15     //一个类的成员方法接收的形式参数是接口或是抽象类16     public void eat(Animal a)    //Animal a=new Dog(多态);      // 传递肯定是该接口的子类对象,这个子类对象一定会重写接口的抽象方法17     {                         //采用多态调的肯定是儿子的18         a.eat();19     }20 21 }22  class DuoTai 23 {24     public static void main (String [] args)25     {26         Text t=new Text();27         Dog d=new Dog();28         t.eat(d);29     }30 }

方式二:
采用匿名内部类当做形式参数传递
interface Animal{   public abstract void eat ();}class Text{      //一个类的成员方法接收的形式参数是接口或是抽象类    public void eat(Animal a)    {                                 a.eat();    }} class DuoTai {    public static void main (String [] args)    {        Text t=new Text();//匿名内部类当做参数传递        t.eat(new Animal()        {            public void eat ()            {                System.out.println("eat dog");            }        });    }}

 

 

当类的成员方法接收的形式参数是抽象类或者是接口时,如何传参数?