这是我妹子问我的,当时好久没写过Java了,不过纠结了一会还是做了出来……
题目如下:
下面是代码:
package a;public interface Animal { //接口里的抽象方法不可有方法体,空的也不行,直接加分号。 //注意是不需要参数的 public void cry() ; public String getAnimalName();}
package a;public class Dog implements Animal { @Override public void cry() { System.out.println("狗叫--汪汪"); } @Override public String getAnimalName() { // TODO Auto-generated method stub return "I'm a dog"; }}
package a;public class Cat implements Animal { @Override public void cry() { // TODO Auto-generated method stub System.out.println("猫叫--喵喵"); } @Override public String getAnimalName() { // TODO Auto-generated method stub return "I'm a cat"; } }
package a;public class Simulator {//注意此处不需要实现Animal接口 public void playSound(Animal animal) { animal.cry(); animal.getAnimalName(); } public static void main(String[] args) { Simulator simulator = new Simulator(); simulator.playSound(new Dog()); simulator.playSound(new Cat()); }}
当时想到的一个问题是接口做了参数,那需不需要实现借口呢,想了想,答案是否定的,只需要传递过来实现了接口的类即可。