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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当类的成员方法接收的形式参数是抽象类或者是接口时,如何传参数?相关的知识,希望对你有一定的参考价值。

方法一:

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

代码如下:

 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 Text
14 {  
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");
            }
        });
    }
}

 

 

以上是关于当类的成员方法接收的形式参数是抽象类或者是接口时,如何传参数?的主要内容,如果未能解决你的问题,请参考以下文章

抽象类和接口

java 抽象类

接口和抽象类

接口和抽象类的区别是什么

Abstract抽象类 && Interface接口

第10题-接口与抽象类的区别