首页 新闻 会员 周边 捐助

请问为什么这个静态方法animalshout方法为什么报错?

0
[待解决问题]

// 定义一个动物接口
interface Animal4 {
void shout();
}
//定义一个🐱类继承动物接口,并实现shout方法
class Cat4 implements Animal4{
public void shout(){
System.out.println("喵喵。。。。。。");
}
}

//定义一个🐕类继承动物接口,并实现shout方法
class Dog4 implements Animal4{
public void shout(){
System.out.println("汪汪汪。。。。。。。。。");
}
}

//测试类
public class Example13 {
public static void main(String[] args) {
//
Animal4 an1 = new Cat4();
Animal4 an2 =new Dog4();

  //定义一个静态方法animalshout方法,接受一个animal方法
  public static void Animalshout(Animal4 an){
      an.shout();
  }

}
}

godmodel的主页 godmodel | 菜鸟二级 | 园豆:202
提问于:2021-11-26 23:31
< >
分享
所有回答(2)
0

我觉得是接口的用法的问题,Animal4是一个接口 ,接口的调用是需把动物类对象给接口变量,然后再用用接口变量调用方法,这时执行的是动物类对象的方法。我刚学C#,两种语言实现多态应该是差不多的。

中华鲟3670 | 园豆:922 (小虾三级) | 2021-11-27 11:12
0
package com.xin.cnblog;

public interface Animal {
	public void shout();
}

package com.xin.cnblog;

public class Cat implements Animal {

	@Override
	public void shout() {
		// TODO Auto-generated method stub
		System.out.println("meow meow……");
	}

}
package com.xin.cnblog;

public class Dog implements Animal {

	@Override
	public void shout() {
		// TODO Auto-generated method stub
		System.out.println("aha aha aha……");
	}

}
package com.xin.cnblog;

public class Example {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Animal cat = new Cat();
		Animal dog = new Dog();
		cat.shout();
		dog.shout();
	}

}

OK

我有个问题:

你为什么要在Main方法里定义静态方法Animalshout

echo_lovely | 园豆:1534 (小虾三级) | 2021-11-30 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册