《Java小程序——zoo》
1.描述:用到了类的封装,继承,抽象类,多态,接口,instanceof运算符
2.工具:eclipse.exe
3.功能:用数组遍历,同一函数,不同类调用输出不同功能
输出不同动物,不同腿数,不同叫声
/*****************************************************
Author:Ivan Version:0.1 Date:
File name:Animal.java
Description:类
*****************************************************/
package www.Ivan_zoo.com;
//父类
public abstract class Animal {
//成员属性
String name;
int legNum;
//类的封装
public String getName() {
return name;
}
public int getLegNum() {
return legNum;
}
//构造函数
public Animal(){
}
public Animal(String name , int legNum){
}
//成员方法(抽象类)
public abstract void shout();
}
/*****************************************************
Author:Ivan Version:0.1 Date:
File name:Cat.java
Description:类
*****************************************************/
package www.Ivan_zoo.com;
//子类
public class Cat extends Animal implements Terrestrlal{
//子类中的构造函数父类中必需存在
public Cat(){
}
public Cat(String name, int legNum) {
super(name, legNum);
// TODO Auto-generated constructor stub
super.name = name;
super.legNum = legNum;
}
//抽象类具体实现(多态)
public void shout(){
System.out.println(name+"\t\t"+legNum+"\t喵喵喵~");
}
}
/*****************************************************
Author:Ivan Version:0.1 Date:
File name:Duck.java
Description:类
*****************************************************/
package www.Ivan_zoo.com;
public class Duck extends Animal implements Terrestrlal{
public Duck(){
}
public Duck(String name, int legNum) {
super(name, legNum);
// TODO Auto-generated constructor stub
super.name = name;
super.legNum = legNum;
}
public void shout(){
System.out.println(name+"\t\t"+legNum+"\t嘎嘎嘎~");
}
}
/*****************************************************
Author:Ivan Version:0.1 Date:
File name:Dolphin.java
Description:类
*****************************************************/
package www.Ivan_zoo.com;
public class Dolphin extends Animal{
public Dolphin(){
}
public Dolphin(String name, int legNum) {
super(name, legNum);
// TODO Auto-generated constructor stub
super.name = name;
super.legNum = legNum;
}
public void shout(){
System.out.println(name+"\t\t"+legNum+"\t海豚音~");
}
}
/*****************************************************
Author:Ivan Version:0.1 Date:
File name:Terrestralal.java
Description:接口
*****************************************************/
package www.Ivan_zoo.com;
//接口
public interface Terrestrlal {
int getLegNum();
}
/*****************************************************
Author:Ivan Version:0.1 Date:
File name:Main.java
Description:主函数
*****************************************************/
package www.Ivan_zoo.com;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal pet1 = new Cat("加菲猫",4);
Animal pet2 = new Duck("唐老鸭",2);
Animal pet3 = new Dolphin("海豚奇奇",0);
Animal zoo[] = {
pet1,pet2,pet3
};
int i;
for(i = 0; i< 3; i++){
zoo[i].shout();
}
//对instanceof的理解
Cat cat = new Cat();
Dolphin dolphin= new Dolphin();
System.out.println(cat instanceof Cat);
System.out.println(cat instanceof Animal);
System.out.println(cat instanceof Terrestrlal);
System.out.println(dolphin instanceof Terrestrlal);
// System.out.println(cat instanceof Dolphin); //错误
// System.out.println(dolphin instanceof Cat); //错误
}
}