这是我妹子问我的,当时好久没写过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()); } }
当时想到的一个问题是接口做了参数,那需不需要实现借口呢,想了想,答案是否定的,只需要传递过来实现了接口的类即可。