Java中类实现接口实例:
(方便查看)
设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,为了便于扩展采用面向接口的编程思想来实现,编写想应的类以及主类,并且能够调用模拟器发出两种不同动物的叫声
animals.java
public interface animals { //创建animals接口
void cry(); //本来是public abstract抽象类但是可以省略
String getAnimalName(); //同上,
}
//接口体中包含常量的声明和抽象方法两部分,接口体只有抽象方法,没有普通的方法
//而且接口体中的所有常量 的访问权限一定是public,而且是static常量 ,可以省略public、final、static修饰符
//所有的抽象方法的访问权限都是public,
//!!!!!!!!!!!!!!!!
//所有的抽象方法的访问权限都一定是public,而且允许省略public static修饰符
Simulator.java
public class Simulator { //模拟器类
public void playSound(animals animals) //playsound函数中前一个animals是类,后一个animals是参数,依靠它来传递animal接口的方法
{
System.out.println("now we will play "+animals.getAnimalName()+" class's name"); //调用animal接口方法中的getanimalsname
animals.cry(); //调用animals接口方法中的cry
}
}
cat.java
public class cat implements animals { //cat类实现animals接口,并重写animals接口中所有方法
public void cry() //cat类重写cry方法
{
System.out.println("mimiimmi"); //
}
public String getAnimalName() //cat类重写getanimalsname方法
{
return"cat"; //返回一个字符串cat
}
}
dog.java
public class dog implements animals { //dog类实现animals接口,并重写其接口内所有方法
public void cry() //重写cry方法
{
System.out.println("wangwangwang");
}
public String getAnimalName() //重写getanimalsname方法
{
return"dog";
}
}
lizi.java
public class lizi {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Simulator simulator = new Simulator();
simulator.playSound(new dog()); //simulator.playSound(getAnimalName(dog))
simulator.playSound(new cat()); // simulator.playSound(getAnimalName(cat));
}
}
//第五行是在simulator类中创建一个simulator变量,重写simulator类中的方法
//6、7行是我自己在前面瞎写的