关于继承和多态的一个问题 多态继承stringclass 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多态嘛,子类重写了toString()方法啦,走的是子类的方法。话说楼主英语不错啊 import java.util.*;class Characteristic{ private String s; Characteristic(String s) { this.s = s; System.out.println("Creating Characteristic " + s); }}class Description{ private String s; Description(String s) { this.s = s; System.out.println("Creating Description " + s); }}class Rodent2{ private String name = "Rodent"; private Characteristic ch = new Characteristic("Has tail"); private Description d = new Description("Is mammal"); Rodent2() { System.out.println("Rodent2 construstor"); } protected void run() { System.out.println("Rodent2.run()"); } protected void eat() { System.out.println("Rodent2 eats"); } public String toString() { return name; }}class Mouse2 extends Rodent2{ private String name = "Mouse"; private Characteristic ch = new Characteristic("likes cheese"); private Description d = new Description("afriad cats"); Mouse2() { System.out.println("Mouse2 constructor"); } protected void run() { System.out.println("Mouse2.run()"); } protected void eat() { System.out.println("Mouse2 eats"); } public String toString() { return name; }}class Gerbil2 extends Rodent2{ private String name = "Gerbil"; private Characteristic ch = new Characteristic("is Wild"); private Description d = new Description("seeking food"); Gerbil2() { System.out.println("Gerbil2 constructor"); } protected void run() { System.out.println("Gerbil2.run()"); } protected void eat() { System.out.println("Gerbil2 eats"); } public String toString() { return name; }}class Hamster2 extends Rodent2{ private String name = "Hamster"; private Characteristic ch = new Characteristic("climb trees"); private Description d = new Description("like nuts"); Hamster2() { System.out.println("Hamster2 constructor"); } protected void run() { System.out.println("Hamster2.run()"); } protected void eat() { System.out.println("Hamster2 eats"); } public String toString() { return name; }}class Randomgen2{ Random rand = new Random(); public Rodent2 next() { switch (rand.nextInt(3)) { default: case 0: return new Mouse2(); case 1: return new Gerbil2(); case 2: return new Hamster2(); } }}public class RodentEx12{ static Randomgen2 rdg = new Randomgen2(); public static void main(String[] args) { Rodent2[] rd = new Rodent2[10]; for (Rodent2 r : rd) { r = rdg.next(); System.out.println(r); } }}你应该把你程序的主要代码给挑出来,这太多太繁琐了; 线程安全必须要通过synchronized实现吗? 大家看看java swing 这是什么错误哦 最近想研究数据结构与算法大家给我推荐本认为好的书 谁能帮我这个迷失的羔羊 一道hashset的题目,求助 JAVA数据库连接池的问题 帮忙看个程序! 关于接口的问题?急用。 在线请教,急,急....... 如何禁用JFrame的最大化Button,但是又可以resize? 关于Readable接口的read()方法 关于byte数组转换的问题
{
private String s; Characteristic(String s)
{
this.s = s;
System.out.println("Creating Characteristic " + s);
}
}class Description
{
private String s; Description(String s)
{
this.s = s;
System.out.println("Creating Description " + s);
}
}class Rodent2
{
private String name = "Rodent";
private Characteristic ch = new Characteristic("Has tail");
private Description d = new Description("Is mammal"); Rodent2()
{
System.out.println("Rodent2 construstor");
} protected void run()
{
System.out.println("Rodent2.run()");
} protected void eat()
{
System.out.println("Rodent2 eats");
} public String toString()
{
return name;
}
}class Mouse2 extends Rodent2
{
private String name = "Mouse";
private Characteristic ch = new Characteristic("likes cheese");
private Description d = new Description("afriad cats"); Mouse2()
{
System.out.println("Mouse2 constructor");
} protected void run()
{
System.out.println("Mouse2.run()");
} protected void eat()
{
System.out.println("Mouse2 eats");
} public String toString()
{
return name;
}
}class Gerbil2 extends Rodent2
{
private String name = "Gerbil";
private Characteristic ch = new Characteristic("is Wild");
private Description d = new Description("seeking food"); Gerbil2()
{
System.out.println("Gerbil2 constructor");
} protected void run()
{
System.out.println("Gerbil2.run()");
} protected void eat()
{
System.out.println("Gerbil2 eats");
} public String toString()
{
return name;
}
}class Hamster2 extends Rodent2
{
private String name = "Hamster";
private Characteristic ch = new Characteristic("climb trees");
private Description d = new Description("like nuts"); Hamster2()
{
System.out.println("Hamster2 constructor");
} protected void run()
{
System.out.println("Hamster2.run()");
} protected void eat()
{
System.out.println("Hamster2 eats");
} public String toString()
{
return name;
}
}class Randomgen2
{
Random rand = new Random(); public Rodent2 next()
{
switch (rand.nextInt(3))
{
default:
case 0:
return new Mouse2();
case 1:
return new Gerbil2();
case 2:
return new Hamster2();
}
}
}public class RodentEx12
{
static Randomgen2 rdg = new Randomgen2(); public static void main(String[] args)
{ Rodent2[] rd = new Rodent2[10];
for (Rodent2 r : rd)
{
r = rdg.next();
System.out.println(r);
}
}
}你应该把你程序的主要代码给挑出来,这太多太繁琐了;