目的:
理解继承与多态的概念,熟练掌握使用方法
1、 设计一个数据类型判断类Polymorphism,使用重载、装箱等技术判断一个不带等号的Java表达式的结果的数据类型。
2、 设计一个链表结点类LinkNode,此类可以存放int、long、float、double、byte、short、String、StringBuffer类型的数据。用此类:a、随机产生100个整数(范围自定)的链表,在生成的过程中从小到大排列,然后输出;b、随机产生100个6个英文字母的单词的链表,在生成的过程中从小到大排列,然后输出。(关注装箱和拆箱相关概念)
3、 A、在main()中使用LinkNode类创建4个实例,并赋予不同的值(long、double、 StringBuffer、MyDate),然后使用Object中默认的toString()方法(从超级父类继承而来) 显示结果。
B、继承LinkNode类创建新类LinkNodeS,在其中重写Object中默认的toString()方法(将结点的value转换成对应的字符串),main()中用LinkNodeS类同样创建4个实例,并赋予和上面同样的值(long、double、StringBuffer、MyDate),观察使用新的toString()方法的效果,体会继承与多态。(MyDate的日期toString用标准格式)
4、有来自4类(鸟类、昆虫类、爬行类和鱼类)的100个动物聚在一起开会,商议和另一个动物部落打仗事宜,会议要求每个动物都要报告自己所属的动物类别和自己的天赋,以便选拔人才、组织兵力迎战。
设计:用Animal作为基类,鸟类、昆虫类、爬行类和鱼类各作为Animal的子类设计类层次结构,设计时运用继承、重写并设计多态机制,同时对每个子类至少要添加一个其描述的动物特有的行为和一个特有的属性,以更准确地描述子类对象。
使用:用循环随机生成这100个动物装入动物数组,要对每个动物进行编号和随机命名,用循环让每个参会的动物报告自己的类别和天赋。
Animal内容如下:
Class Animal
{
public int id; //编号
public String name;//名字
//public String type; //类别:鸟类、昆虫类、爬行类和鱼类之一
public void showType()//在console上秀自己的类别
{
System.out.println(“My ID is “+id+” and Iam just an animal, my type is going to be determined later.”);
}
public void showTalent()//在console上秀自己的天赋特长
{
System.out.println(“I don’t know what Iam talented at.”);
}
}
(请认真观察和体会Java的继承和多态)
import java.text.SimpleDateFormat;
public class TestFive {
public static void main(String[] args) {
polyTest();
//随即生成100个随机数,排序输出。
sortNumber(100,1000);
sortWords(100);
changeToString();
animalFight();
}
public static void polyTest()
{
Polymorphism poly = new Polymorphism();
System.out.println(poly.getType(1+1.0));
System.out.println(poly.getTyp