本文主要是介绍动物乐园,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个项目主要是检验你对面向对象的三大特性的学习情况
需求:以面向对象思想设计动物乐园系统。动物乐园中有猫、鸭等成员, 还可能增加新成员。猫和鸭都有自己的名字,都有腿,但腿的条数不同,猫和鸭子会发出 叫声,猫的叫声是“喵喵喵……”,鸭的叫声是“嘎嘎嘎……”。
分析:有五个类,一个接口,五个类分别是Cat类、Duck类、Animal类、Test类和新增的成员Dolphin类,接口为Terrestrial
Cat类的属性有:int类型的legNum,Duck类的属性有:int类型的legNum,抽象类Animal的属性有:String类型的name
Cat类和Duck类的方法有:返回值类型为void的getLegNum()方法,Cat(String name,int legNum)的构造方法,返回值类型为void的shout()方法
Animal类的方法有:Animal(String name)的构造方法,返回值类型为void的shout()的抽象方法
Dolphin类的方法有:Dolphin(String name)的构造方法,返回值类型为void的shout()方法
接口Terrestrial的方法有:返回值为int类型的getLegNum()方法
代码的实现:
abstract class Animal
{
private String name;
//构造方法,初始化名字
Animal(String name){
this.name = name;
}
//getter方法,获得名字
String getName(){
return name;
}
//抽象方法,子类重写此方法
abstract void shout();
}
interface Terrestrial
{
//接口中的方法,扩展此功能的类需重写此方法
int getLegNum();
}
class Cat extends Animal implements Terrestrial
{
int legNum;
//构造方法,初始化名字和腿的数量
Cat(String name,int legNum){
//调用父类的构造方法
super(name);
this.legNum = legNum;
}
//重写父类的shout方法
public void shout(){
System.out.println("喵喵。。。");
}
//重写接口中的方法
public int getLegNum(){
return legNum;
}
}
class Cat extends Animal implements Terrestrial
{
int legNum;
Cat(String name,int legNum){
super(name);
this.legNum = legNum;
}
public void shout(){
System.out.println("喵喵。。。");
}
public int getLegNum(){
return legNum;
}
}
class Dolphin extends Animal
{
Dolphin(String name){
super(name);
}
public void shout(){
System.out.println("海豚音。。。");
}
}
class Test
{
public static void main(String[] args)
{
System.out.println("动物名字 腿的条数 动物叫");
//创建一个Animal类型的数组用来存储动物名字和腿的数量
Animal[] animals = new Animal[3];
//向数组中存储数据
animals[0] = new Cat("加菲猫 ",4);
animals[1] = new Duck("唐小鸭 ",2);
animals[2] = new Dolphin("海豚奇奇");
//遍历数组
for (int i = 0;i < animals.length ;i++ )
{
//判断动物是否实现了接口
if (animals[i] instanceof Terrestrial)
{
Terrestrial trtl = (Terrestrial)animals[i];
int legNum = trtl.getLegNum();
//如果实现了接口则输出动物名字和对应的腿的数量
System.out.print(animals[i].getName() + " " + legNum);
}else{
//如果没实现就输出动物的名字和腿数为0
System.out.print(animals[i].getName() + " 0");
}
System.out.print(" ");
//输出动物的叫声
animals[i].shout();
}
}
}
这篇关于动物乐园的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!