📄 rodent1.java
字号:
// interfaces/rodent/Rodent1.java
// TIJ4 Chapter Interfaces, Exercise 1, page 315
/* Modify Exercise 9 in the previous chapter so that Rodent is an abstract class.
* Make the methods of Rodent abstract whenever possible.
*/
/* Solution includes, in same package:
* import java.util.*;
* public class RandomRodentGenerator1 {
* private Random rand = new Random();
* public Rodent next() {
* switch(rand.nextInt(3)) {
* default:
* case 0: return new Mouse();
* case 1: return new Rat();
* case 2: return new Squirrel();
* }
* }
* }
*/
package interfaces.rodent;
import static org.greggordon.tools.Print.*;
abstract class Rodent {
private String name = "Rodent";
abstract protected void eat();
abstract protected void run();
abstract protected void sleep();
abstract public String toString();
}
class Mouse extends Rodent {
private String name = "Mouse";
protected void eat() { println("Mouse.eat()"); }
protected void run() { println("Mouse.run()"); }
protected void sleep() { println("Mouse.sleep()"); }
public String toString() { return name; }
}
class Rat extends Rodent {
private String name = "Rat";
protected void eat() { println("Rat.eat()"); }
protected void run() { println("Rat.run()"); }
protected void sleep() { println("Rat.sleep()"); }
public String toString() { return name; }
}
class Squirrel extends Rodent {
private String name = "Squirrel";
protected void eat() { println("Squirrel.eat()"); }
protected void run() { println("Squirrel.run()"); }
protected void sleep() { println("Squirrel.sleep()"); }
public String toString() { return name; }
}
public class Rodent1 {
private static RandomRodentGenerator1 gen = new RandomRodentGenerator1();
public static void main(String[] args) {
// Error: cannot instantiate abstract class:
// Rodent x = new Rodent();
// But OK to create array to be downcast to derived objects:
Rodent[] rodents = new Rodent[10];
for(Rodent r : rodents) {
r = gen.next();
println(r + ": ");
r.eat();
r.run();
r.sleep();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -